export type Maybe<T> = T | null;
export type InputMaybe<T> = Maybe<T>;
export type Exact<T extends { [key: string]: unknown }> = { [K in keyof T]: T[K] };
export type MakeOptional<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]?: Maybe<T[SubKey]> };
export type MakeMaybe<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]: Maybe<T[SubKey]> };
/** All built-in and custom scalars, mapped to their actual values */
export type Scalars = {
  ID: string;
  String: string;
  Boolean: boolean;
  Int: number;
  Float: number;
  /** A (potentially binary) string encoded using base64. */
  Base64String: any;
  /**
   * Represents non-fractional signed whole numeric values. Since the value may
   * exceed the size of a 32-bit integer, it's encoded as a string.
   */
  BigInt: any;
  /** An ISO-8601 encoded date string. */
  Date: any;
  /** An ISO-8601 encoded UTC date string. */
  DateTime: any;
  /** A Git object ID. */
  GitObjectID: any;
  /** Git SSH string */
  GitSSHRemote: any;
  /** An ISO-8601 encoded date string. Unlike the DateTime type, GitTimestamp is not converted in UTC. */
  GitTimestamp: any;
  /** A string containing HTML code. */
  HTML: any;
  /** An ISO-8601 encoded UTC date string with millisecond precision. */
  PreciseDateTime: any;
  /** An RFC 3986, RFC 3987, and RFC 6570 (level 4) compliant URI string. */
  URI: any;
  /** A valid x509 certificate string */
  X509Certificate: any;
};

/** Autogenerated input type of AbortQueuedMigrations */
export type AbortQueuedMigrationsInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the organization that is running the migrations. */
  ownerId: Scalars['ID'];
};

/** Autogenerated return type of AbortQueuedMigrations */
export type AbortQueuedMigrationsPayload = {
  __typename?: 'AbortQueuedMigrationsPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** Did the operation succeed? */
  success?: Maybe<Scalars['Boolean']>;
};

/** Autogenerated input type of AcceptEnterpriseAdministratorInvitation */
export type AcceptEnterpriseAdministratorInvitationInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The id of the invitation being accepted */
  invitationId: Scalars['ID'];
};

/** Autogenerated return type of AcceptEnterpriseAdministratorInvitation */
export type AcceptEnterpriseAdministratorInvitationPayload = {
  __typename?: 'AcceptEnterpriseAdministratorInvitationPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The invitation that was accepted. */
  invitation?: Maybe<EnterpriseAdministratorInvitation>;
  /** A message confirming the result of accepting an administrator invitation. */
  message?: Maybe<Scalars['String']>;
};

/** Autogenerated input type of AcceptTopicSuggestion */
export type AcceptTopicSuggestionInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The name of the suggested topic. */
  name: Scalars['String'];
  /** The Node ID of the repository. */
  repositoryId: Scalars['ID'];
};

/** Autogenerated return type of AcceptTopicSuggestion */
export type AcceptTopicSuggestionPayload = {
  __typename?: 'AcceptTopicSuggestionPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The accepted topic. */
  topic?: Maybe<Topic>;
};

/** Represents an object which can take actions on GitHub. Typically a User or Bot. */
export type Actor = {
  /** A URL pointing to the actor's public avatar. */
  avatarUrl: Scalars['URI'];
  /** The username of the actor. */
  login: Scalars['String'];
  /** The HTTP path for this actor. */
  resourcePath: Scalars['URI'];
  /** The HTTP URL for this actor. */
  url: Scalars['URI'];
};


/** Represents an object which can take actions on GitHub. Typically a User or Bot. */
export type ActorAvatarUrlArgs = {
  size?: InputMaybe<Scalars['Int']>;
};

/** Location information for an actor */
export type ActorLocation = {
  __typename?: 'ActorLocation';
  /** City */
  city?: Maybe<Scalars['String']>;
  /** Country name */
  country?: Maybe<Scalars['String']>;
  /** Country code */
  countryCode?: Maybe<Scalars['String']>;
  /** Region name */
  region?: Maybe<Scalars['String']>;
  /** Region or state code */
  regionCode?: Maybe<Scalars['String']>;
};

/** The actor's type. */
export type ActorType =
  /** Indicates a team actor. */
  | 'TEAM'
  /** Indicates a user actor. */
  | 'USER';

/** Autogenerated input type of AddAssigneesToAssignable */
export type AddAssigneesToAssignableInput = {
  /** The id of the assignable object to add assignees to. */
  assignableId: Scalars['ID'];
  /** The id of users to add as assignees. */
  assigneeIds: Array<Scalars['ID']>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
};

/** Autogenerated return type of AddAssigneesToAssignable */
export type AddAssigneesToAssignablePayload = {
  __typename?: 'AddAssigneesToAssignablePayload';
  /** The item that was assigned. */
  assignable?: Maybe<Issue | PullRequest>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
};

/** Autogenerated input type of AddComment */
export type AddCommentInput = {
  /** The contents of the comment. */
  body: Scalars['String'];
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The Node ID of the subject to modify. */
  subjectId: Scalars['ID'];
};

/** Autogenerated return type of AddComment */
export type AddCommentPayload = {
  __typename?: 'AddCommentPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The edge from the subject's comment connection. */
  commentEdge?: Maybe<IssueCommentEdge>;
  /** The subject */
  subject?: Maybe<AddedToProjectEvent | App | AssignedEvent | AutoMergeDisabledEvent | AutoMergeEnabledEvent | AutoRebaseEnabledEvent | AutoSquashEnabledEvent | AutomaticBaseChangeFailedEvent | AutomaticBaseChangeSucceededEvent | BaseRefChangedEvent | BaseRefDeletedEvent | BaseRefForcePushedEvent | Blob | Bot | BranchProtectionRule | BypassForcePushAllowance | BypassPullRequestAllowance | Cwe | CheckRun | CheckSuite | ClosedEvent | CodeOfConduct | CommentDeletedEvent | Commit | CommitComment | CommitCommentThread | Comparison | ConnectedEvent | ConvertToDraftEvent | ConvertedNoteToIssueEvent | ConvertedToDiscussionEvent | CrossReferencedEvent | DemilestonedEvent | DeployKey | DeployedEvent | Deployment | DeploymentEnvironmentChangedEvent | DeploymentReview | DeploymentStatus | DisconnectedEvent | Discussion | DiscussionCategory | DiscussionComment | DiscussionPoll | DiscussionPollOption | DraftIssue | Enterprise | EnterpriseAdministratorInvitation | EnterpriseIdentityProvider | EnterpriseRepositoryInfo | EnterpriseServerInstallation | EnterpriseServerUserAccount | EnterpriseServerUserAccountEmail | EnterpriseServerUserAccountsUpload | EnterpriseUserAccount | Environment | ExternalIdentity | Gist | GistComment | HeadRefDeletedEvent | HeadRefForcePushedEvent | HeadRefRestoredEvent | IpAllowListEntry | Issue | IssueComment | Label | LabeledEvent | Language | License | LinkedBranch | LockedEvent | Mannequin | MarkedAsDuplicateEvent | MarketplaceCategory | MarketplaceListing | MembersCanDeleteReposClearAuditEntry | MembersCanDeleteReposDisableAuditEntry | MembersCanDeleteReposEnableAuditEntry | MentionedEvent | MergedEvent | MigrationSource | Milestone | MilestonedEvent | MovedColumnsInProjectEvent | OidcProvider | OauthApplicationCreateAuditEntry | OrgAddBillingManagerAuditEntry | OrgAddMemberAuditEntry | OrgBlockUserAuditEntry | OrgConfigDisableCollaboratorsOnlyAuditEntry | OrgConfigEnableCollaboratorsOnlyAuditEntry | OrgCreateAuditEntry | OrgDisableOauthAppRestrictionsAuditEntry | OrgDisableSamlAuditEntry | OrgDisableTwoFactorRequirementAuditEntry | OrgEnableOauthAppRestrictionsAuditEntry | OrgEnableSamlAuditEntry | OrgEnableTwoFactorRequirementAuditEntry | OrgInviteMemberAuditEntry | OrgInviteToBusinessAuditEntry | OrgOauthAppAccessApprovedAuditEntry | OrgOauthAppAccessDeniedAuditEntry | OrgOauthAppAccessRequestedAuditEntry | OrgRemoveBillingManagerAuditEntry | OrgRemoveMemberAuditEntry | OrgRemoveOutsideCollaboratorAuditEntry | OrgRestoreMemberAuditEntry | OrgUnblockUserAuditEntry | OrgUpdateDefaultRepositoryPermissionAuditEntry | OrgUpdateMemberAuditEntry | OrgUpdateMemberRepositoryCreationPermissionAuditEntry | OrgUpdateMemberRepositoryInvitationPermissionAuditEntry | Organization | OrganizationIdentityProvider | OrganizationInvitation | OrganizationMigration | Package | PackageFile | PackageTag | PackageVersion | PinnedDiscussion | PinnedEvent | PinnedIssue | PrivateRepositoryForkingDisableAuditEntry | PrivateRepositoryForkingEnableAuditEntry | Project | ProjectCard | ProjectColumn | ProjectV2 | ProjectV2Field | ProjectV2Item | ProjectV2ItemFieldDateValue | ProjectV2ItemFieldIterationValue | ProjectV2ItemFieldNumberValue | ProjectV2ItemFieldSingleSelectValue | ProjectV2ItemFieldTextValue | ProjectV2IterationField | ProjectV2SingleSelectField | ProjectV2View | ProjectV2Workflow | PublicKey | PullRequest | PullRequestCommit | PullRequestCommitCommentThread | PullRequestReview | PullRequestReviewComment | PullRequestReviewThread | PullRequestThread | Push | PushAllowance | Reaction | ReadyForReviewEvent | Ref | ReferencedEvent | Release | ReleaseAsset | RemovedFromProjectEvent | RenamedTitleEvent | ReopenedEvent | RepoAccessAuditEntry | RepoAddMemberAuditEntry | RepoAddTopicAuditEntry | RepoArchivedAuditEntry | RepoChangeMergeSettingAuditEntry | RepoConfigDisableAnonymousGitAccessAuditEntry | RepoConfigDisableCollaboratorsOnlyAuditEntry | RepoConfigDisableContributorsOnlyAuditEntry | RepoConfigDisableSockpuppetDisallowedAuditEntry | RepoConfigEnableAnonymousGitAccessAuditEntry | RepoConfigEnableCollaboratorsOnlyAuditEntry | RepoConfigEnableContributorsOnlyAuditEntry | RepoConfigEnableSockpuppetDisallowedAuditEntry | RepoConfigLockAnonymousGitAccessAuditEntry | RepoConfigUnlockAnonymousGitAccessAuditEntry | RepoCreateAuditEntry | RepoDestroyAuditEntry | RepoRemoveMemberAuditEntry | RepoRemoveTopicAuditEntry | Repository | RepositoryInvitation | RepositoryMigration | RepositoryTopic | RepositoryVisibilityChangeDisableAuditEntry | RepositoryVisibilityChangeEnableAuditEntry | RepositoryVulnerabilityAlert | ReviewDismissalAllowance | ReviewDismissedEvent | ReviewRequest | ReviewRequestRemovedEvent | ReviewRequestedEvent | SavedReply | SecurityAdvisory | SponsorsActivity | SponsorsListing | SponsorsListingFeaturedItem | SponsorsTier | Sponsorship | SponsorshipNewsletter | Status | StatusCheckRollup | StatusContext | SubscribedEvent | Tag | Team | TeamAddMemberAuditEntry | TeamAddRepositoryAuditEntry | TeamChangeParentTeamAuditEntry | TeamDiscussion | TeamDiscussionComment | TeamRemoveMemberAuditEntry | TeamRemoveRepositoryAuditEntry | Topic | TransferredEvent | Tree | UnassignedEvent | UnlabeledEvent | UnlockedEvent | UnmarkedAsDuplicateEvent | UnpinnedEvent | UnsubscribedEvent | User | UserBlockedEvent | UserContentEdit | UserStatus | VerifiableDomain | Workflow | WorkflowRun>;
  /** The edge from the subject's timeline connection. */
  timelineEdge?: Maybe<IssueTimelineItemEdge>;
};

/** Autogenerated input type of AddDiscussionComment */
export type AddDiscussionCommentInput = {
  /** The contents of the comment. */
  body: Scalars['String'];
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The Node ID of the discussion to comment on. */
  discussionId: Scalars['ID'];
  /** The Node ID of the discussion comment within this discussion to reply to. */
  replyToId?: InputMaybe<Scalars['ID']>;
};

/** Autogenerated return type of AddDiscussionComment */
export type AddDiscussionCommentPayload = {
  __typename?: 'AddDiscussionCommentPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The newly created discussion comment. */
  comment?: Maybe<DiscussionComment>;
};

/** Autogenerated input type of AddDiscussionPollVote */
export type AddDiscussionPollVoteInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The Node ID of the discussion poll option to vote for. */
  pollOptionId: Scalars['ID'];
};

/** Autogenerated return type of AddDiscussionPollVote */
export type AddDiscussionPollVotePayload = {
  __typename?: 'AddDiscussionPollVotePayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The poll option that a vote was added to. */
  pollOption?: Maybe<DiscussionPollOption>;
};

/** Autogenerated input type of AddEnterpriseOrganizationMember */
export type AddEnterpriseOrganizationMemberInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the enterprise which owns the organization. */
  enterpriseId: Scalars['ID'];
  /** The ID of the organization the users will be added to. */
  organizationId: Scalars['ID'];
  /** The role to assign the users in the organization */
  role?: InputMaybe<OrganizationMemberRole>;
  /** The IDs of the enterprise members to add. */
  userIds: Array<Scalars['ID']>;
};

/** Autogenerated return type of AddEnterpriseOrganizationMember */
export type AddEnterpriseOrganizationMemberPayload = {
  __typename?: 'AddEnterpriseOrganizationMemberPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The users who were added to the organization. */
  users?: Maybe<Array<User>>;
};

/** Autogenerated input type of AddEnterpriseSupportEntitlement */
export type AddEnterpriseSupportEntitlementInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the Enterprise which the admin belongs to. */
  enterpriseId: Scalars['ID'];
  /** The login of a member who will receive the support entitlement. */
  login: Scalars['String'];
};

/** Autogenerated return type of AddEnterpriseSupportEntitlement */
export type AddEnterpriseSupportEntitlementPayload = {
  __typename?: 'AddEnterpriseSupportEntitlementPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** A message confirming the result of adding the support entitlement. */
  message?: Maybe<Scalars['String']>;
};

/** Autogenerated input type of AddLabelsToLabelable */
export type AddLabelsToLabelableInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ids of the labels to add. */
  labelIds: Array<Scalars['ID']>;
  /** The id of the labelable object to add labels to. */
  labelableId: Scalars['ID'];
};

/** Autogenerated return type of AddLabelsToLabelable */
export type AddLabelsToLabelablePayload = {
  __typename?: 'AddLabelsToLabelablePayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The item that was labeled. */
  labelable?: Maybe<Discussion | Issue | PullRequest>;
};

/** Autogenerated input type of AddProjectCard */
export type AddProjectCardInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The content of the card. Must be a member of the ProjectCardItem union */
  contentId?: InputMaybe<Scalars['ID']>;
  /** The note on the card. */
  note?: InputMaybe<Scalars['String']>;
  /** The Node ID of the ProjectColumn. */
  projectColumnId: Scalars['ID'];
};

/** Autogenerated return type of AddProjectCard */
export type AddProjectCardPayload = {
  __typename?: 'AddProjectCardPayload';
  /** The edge from the ProjectColumn's card connection. */
  cardEdge?: Maybe<ProjectCardEdge>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The ProjectColumn */
  projectColumn?: Maybe<ProjectColumn>;
};

/** Autogenerated input type of AddProjectColumn */
export type AddProjectColumnInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The name of the column. */
  name: Scalars['String'];
  /** The Node ID of the project. */
  projectId: Scalars['ID'];
};

/** Autogenerated return type of AddProjectColumn */
export type AddProjectColumnPayload = {
  __typename?: 'AddProjectColumnPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The edge from the project's column connection. */
  columnEdge?: Maybe<ProjectColumnEdge>;
  /** The project */
  project?: Maybe<Project>;
};

/** Autogenerated input type of AddProjectV2DraftIssue */
export type AddProjectV2DraftIssueInput = {
  /** The IDs of the assignees of the draft issue. */
  assigneeIds?: InputMaybe<Array<Scalars['ID']>>;
  /** The body of the draft issue. */
  body?: InputMaybe<Scalars['String']>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the Project to add the draft issue to. */
  projectId: Scalars['ID'];
  /**
   * The title of the draft issue. A project item can also be created by providing
   * the URL of an Issue or Pull Request if you have access.
   */
  title: Scalars['String'];
};

/** Autogenerated return type of AddProjectV2DraftIssue */
export type AddProjectV2DraftIssuePayload = {
  __typename?: 'AddProjectV2DraftIssuePayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The draft issue added to the project. */
  projectItem?: Maybe<ProjectV2Item>;
};

/** Autogenerated input type of AddProjectV2ItemById */
export type AddProjectV2ItemByIdInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The id of the Issue or Pull Request to add. */
  contentId: Scalars['ID'];
  /** The ID of the Project to add the item to. */
  projectId: Scalars['ID'];
};

/** Autogenerated return type of AddProjectV2ItemById */
export type AddProjectV2ItemByIdPayload = {
  __typename?: 'AddProjectV2ItemByIdPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The item added to the project. */
  item?: Maybe<ProjectV2Item>;
};

/** Autogenerated input type of AddPullRequestReviewComment */
export type AddPullRequestReviewCommentInput = {
  /**
   * The text of the comment. This field is required
   *
   * **Upcoming Change on 2023-10-01 UTC**
   * **Description:** `body` will be removed. use addPullRequestReviewThread or addPullRequestReviewThreadReply instead
   * **Reason:** We are deprecating the addPullRequestReviewComment mutation
   */
  body?: InputMaybe<Scalars['String']>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /**
   * The SHA of the commit to comment on.
   *
   * **Upcoming Change on 2023-10-01 UTC**
   * **Description:** `commitOID` will be removed. use addPullRequestReviewThread or addPullRequestReviewThreadReply instead
   * **Reason:** We are deprecating the addPullRequestReviewComment mutation
   */
  commitOID?: InputMaybe<Scalars['GitObjectID']>;
  /**
   * The comment id to reply to.
   *
   * **Upcoming Change on 2023-10-01 UTC**
   * **Description:** `inReplyTo` will be removed. use addPullRequestReviewThread or addPullRequestReviewThreadReply instead
   * **Reason:** We are deprecating the addPullRequestReviewComment mutation
   */
  inReplyTo?: InputMaybe<Scalars['ID']>;
  /**
   * The relative path of the file to comment on.
   *
   * **Upcoming Change on 2023-10-01 UTC**
   * **Description:** `path` will be removed. use addPullRequestReviewThread or addPullRequestReviewThreadReply instead
   * **Reason:** We are deprecating the addPullRequestReviewComment mutation
   */
  path?: InputMaybe<Scalars['String']>;
  /**
   * The line index in the diff to comment on.
   *
   * **Upcoming Change on 2023-10-01 UTC**
   * **Description:** `position` will be removed. use addPullRequestReviewThread or addPullRequestReviewThreadReply instead
   * **Reason:** We are deprecating the addPullRequestReviewComment mutation
   */
  position?: InputMaybe<Scalars['Int']>;
  /**
   * The node ID of the pull request reviewing
   *
   * **Upcoming Change on 2023-10-01 UTC**
   * **Description:** `pullRequestId` will be removed. use
   * addPullRequestReviewThread or addPullRequestReviewThreadReply instead
   * **Reason:** We are deprecating the addPullRequestReviewComment mutation
   */
  pullRequestId?: InputMaybe<Scalars['ID']>;
  /**
   * The Node ID of the review to modify.
   *
   * **Upcoming Change on 2023-10-01 UTC**
   * **Description:** `pullRequestReviewId` will be removed. use
   * addPullRequestReviewThread or addPullRequestReviewThreadReply instead
   * **Reason:** We are deprecating the addPullRequestReviewComment mutation
   */
  pullRequestReviewId?: InputMaybe<Scalars['ID']>;
};

/** Autogenerated return type of AddPullRequestReviewComment */
export type AddPullRequestReviewCommentPayload = {
  __typename?: 'AddPullRequestReviewCommentPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The newly created comment. */
  comment?: Maybe<PullRequestReviewComment>;
  /** The edge from the review's comment connection. */
  commentEdge?: Maybe<PullRequestReviewCommentEdge>;
};

/** Autogenerated input type of AddPullRequestReview */
export type AddPullRequestReviewInput = {
  /** The contents of the review body comment. */
  body?: InputMaybe<Scalars['String']>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /**
   * The review line comments.
   *
   * **Upcoming Change on 2023-10-01 UTC**
   * **Description:** `comments` will be removed. use the `threads` argument instead
   * **Reason:** We are deprecating comment fields that use diff-relative positioning
   */
  comments?: InputMaybe<Array<InputMaybe<DraftPullRequestReviewComment>>>;
  /** The commit OID the review pertains to. */
  commitOID?: InputMaybe<Scalars['GitObjectID']>;
  /** The event to perform on the pull request review. */
  event?: InputMaybe<PullRequestReviewEvent>;
  /** The Node ID of the pull request to modify. */
  pullRequestId: Scalars['ID'];
  /** The review line comment threads. */
  threads?: InputMaybe<Array<InputMaybe<DraftPullRequestReviewThread>>>;
};

/** Autogenerated return type of AddPullRequestReview */
export type AddPullRequestReviewPayload = {
  __typename?: 'AddPullRequestReviewPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The newly created pull request review. */
  pullRequestReview?: Maybe<PullRequestReview>;
  /** The edge from the pull request's review connection. */
  reviewEdge?: Maybe<PullRequestReviewEdge>;
};

/** Autogenerated input type of AddPullRequestReviewThread */
export type AddPullRequestReviewThreadInput = {
  /** Body of the thread's first comment. */
  body: Scalars['String'];
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /**
   * The line of the blob to which the thread refers, required for line-level
   * threads. The end of the line range for multi-line comments.
   */
  line?: InputMaybe<Scalars['Int']>;
  /** Path to the file being commented on. */
  path: Scalars['String'];
  /** The node ID of the pull request reviewing */
  pullRequestId?: InputMaybe<Scalars['ID']>;
  /** The Node ID of the review to modify. */
  pullRequestReviewId?: InputMaybe<Scalars['ID']>;
  /** The side of the diff on which the line resides. For multi-line comments, this is the side for the end of the line range. */
  side?: InputMaybe<DiffSide>;
  /** The first line of the range to which the comment refers. */
  startLine?: InputMaybe<Scalars['Int']>;
  /** The side of the diff on which the start line resides. */
  startSide?: InputMaybe<DiffSide>;
  /** The level at which the comments in the corresponding thread are targeted, can be a diff line or a file */
  subjectType?: InputMaybe<PullRequestReviewThreadSubjectType>;
};

/** Autogenerated return type of AddPullRequestReviewThread */
export type AddPullRequestReviewThreadPayload = {
  __typename?: 'AddPullRequestReviewThreadPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The newly created thread. */
  thread?: Maybe<PullRequestReviewThread>;
};

/** Autogenerated input type of AddReaction */
export type AddReactionInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The name of the emoji to react with. */
  content: ReactionContent;
  /** The Node ID of the subject to modify. */
  subjectId: Scalars['ID'];
};

/** Autogenerated return type of AddReaction */
export type AddReactionPayload = {
  __typename?: 'AddReactionPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The reaction object. */
  reaction?: Maybe<Reaction>;
  /** The reaction groups for the subject. */
  reactionGroups?: Maybe<Array<ReactionGroup>>;
  /** The reactable subject. */
  subject?: Maybe<CommitComment | Discussion | DiscussionComment | Issue | IssueComment | PullRequest | PullRequestReview | PullRequestReviewComment | Release | TeamDiscussion | TeamDiscussionComment>;
};

/** Autogenerated input type of AddStar */
export type AddStarInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The Starrable ID to star. */
  starrableId: Scalars['ID'];
};

/** Autogenerated return type of AddStar */
export type AddStarPayload = {
  __typename?: 'AddStarPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The starrable. */
  starrable?: Maybe<Gist | Repository | Topic>;
};

/** Autogenerated input type of AddUpvote */
export type AddUpvoteInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The Node ID of the discussion or comment to upvote. */
  subjectId: Scalars['ID'];
};

/** Autogenerated return type of AddUpvote */
export type AddUpvotePayload = {
  __typename?: 'AddUpvotePayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The votable subject. */
  subject?: Maybe<Discussion | DiscussionComment>;
};

/** Autogenerated input type of AddVerifiableDomain */
export type AddVerifiableDomainInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The URL of the domain */
  domain: Scalars['URI'];
  /** The ID of the owner to add the domain to */
  ownerId: Scalars['ID'];
};

/** Autogenerated return type of AddVerifiableDomain */
export type AddVerifiableDomainPayload = {
  __typename?: 'AddVerifiableDomainPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The verifiable domain that was added. */
  domain?: Maybe<VerifiableDomain>;
};

/** Represents a 'added_to_project' event on a given issue or pull request. */
export type AddedToProjectEvent = Node & {
  __typename?: 'AddedToProjectEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  id: Scalars['ID'];
};

/** Represents an announcement banner. */
export type AnnouncementBanner = {
  /** The text of the announcement */
  announcement?: Maybe<Scalars['String']>;
  /** The expiration date of the announcement, if any */
  announcementExpiresAt?: Maybe<Scalars['DateTime']>;
  /** Whether the announcement can be dismissed by the user */
  announcementUserDismissible?: Maybe<Scalars['Boolean']>;
};

/** A GitHub App. */
export type App = Node & {
  __typename?: 'App';
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** The description of the app. */
  description?: Maybe<Scalars['String']>;
  id: Scalars['ID'];
  /** The IP addresses of the app. */
  ipAllowListEntries: IpAllowListEntryConnection;
  /** The hex color code, without the leading '#', for the logo background. */
  logoBackgroundColor: Scalars['String'];
  /** A URL pointing to the app's logo. */
  logoUrl: Scalars['URI'];
  /** The name of the app. */
  name: Scalars['String'];
  /** A slug based on the name of the app for use in URLs. */
  slug: Scalars['String'];
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
  /** The URL to the app's homepage. */
  url: Scalars['URI'];
};


/** A GitHub App. */
export type AppIpAllowListEntriesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<IpAllowListEntryOrder>;
};


/** A GitHub App. */
export type AppLogoUrlArgs = {
  size?: InputMaybe<Scalars['Int']>;
};

/** Autogenerated input type of ApproveDeployments */
export type ApproveDeploymentsInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** Optional comment for approving deployments */
  comment?: InputMaybe<Scalars['String']>;
  /** The ids of environments to reject deployments */
  environmentIds: Array<Scalars['ID']>;
  /** The node ID of the workflow run containing the pending deployments. */
  workflowRunId: Scalars['ID'];
};

/** Autogenerated return type of ApproveDeployments */
export type ApproveDeploymentsPayload = {
  __typename?: 'ApproveDeploymentsPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The affected deployments. */
  deployments?: Maybe<Array<Deployment>>;
};

/** Autogenerated input type of ApproveVerifiableDomain */
export type ApproveVerifiableDomainInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the verifiable domain to approve. */
  id: Scalars['ID'];
};

/** Autogenerated return type of ApproveVerifiableDomain */
export type ApproveVerifiableDomainPayload = {
  __typename?: 'ApproveVerifiableDomainPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The verifiable domain that was approved. */
  domain?: Maybe<VerifiableDomain>;
};

/** Autogenerated input type of ArchiveProjectV2Item */
export type ArchiveProjectV2ItemInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the ProjectV2Item to archive. */
  itemId: Scalars['ID'];
  /** The ID of the Project to archive the item from. */
  projectId: Scalars['ID'];
};

/** Autogenerated return type of ArchiveProjectV2Item */
export type ArchiveProjectV2ItemPayload = {
  __typename?: 'ArchiveProjectV2ItemPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The item archived from the project. */
  item?: Maybe<ProjectV2Item>;
};

/** Autogenerated input type of ArchiveRepository */
export type ArchiveRepositoryInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the repository to mark as archived. */
  repositoryId: Scalars['ID'];
};

/** Autogenerated return type of ArchiveRepository */
export type ArchiveRepositoryPayload = {
  __typename?: 'ArchiveRepositoryPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The repository that was marked as archived. */
  repository?: Maybe<Repository>;
};

/** An object that can have users assigned to it. */
export type Assignable = {
  /** A list of Users assigned to this object. */
  assignees: UserConnection;
};


/** An object that can have users assigned to it. */
export type AssignableAssigneesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};

/** Represents an 'assigned' event on any assignable object. */
export type AssignedEvent = Node & {
  __typename?: 'AssignedEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the assignable associated with the event. */
  assignable: Issue | PullRequest;
  /** Identifies the user or mannequin that was assigned. */
  assignee?: Maybe<Assignee>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  id: Scalars['ID'];
  /**
   * Identifies the user who was assigned.
   * @deprecated Assignees can now be mannequins. Use the `assignee` field instead. Removal on 2020-01-01 UTC.
   */
  user?: Maybe<User>;
};

/** Types that can be assigned to issues. */
export type Assignee = Bot | Mannequin | Organization | User;

/** An entry in the audit log. */
export type AuditEntry = {
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** Types that can initiate an audit log event. */
export type AuditEntryActor = Bot | Organization | User;

/** Ordering options for Audit Log connections. */
export type AuditLogOrder = {
  /** The ordering direction. */
  direction?: InputMaybe<OrderDirection>;
  /** The field to order Audit Logs by. */
  field?: InputMaybe<AuditLogOrderField>;
};

/** Properties by which Audit Log connections can be ordered. */
export type AuditLogOrderField =
  /** Order audit log entries by timestamp */
  | 'CREATED_AT';

/** Represents a 'auto_merge_disabled' event on a given pull request. */
export type AutoMergeDisabledEvent = Node & {
  __typename?: 'AutoMergeDisabledEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** The user who disabled auto-merge for this Pull Request */
  disabler?: Maybe<User>;
  id: Scalars['ID'];
  /** PullRequest referenced by event */
  pullRequest?: Maybe<PullRequest>;
  /** The reason auto-merge was disabled */
  reason?: Maybe<Scalars['String']>;
  /** The reason_code relating to why auto-merge was disabled */
  reasonCode?: Maybe<Scalars['String']>;
};

/** Represents a 'auto_merge_enabled' event on a given pull request. */
export type AutoMergeEnabledEvent = Node & {
  __typename?: 'AutoMergeEnabledEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** The user who enabled auto-merge for this Pull Request */
  enabler?: Maybe<User>;
  id: Scalars['ID'];
  /** PullRequest referenced by event. */
  pullRequest?: Maybe<PullRequest>;
};

/** Represents an auto-merge request for a pull request */
export type AutoMergeRequest = {
  __typename?: 'AutoMergeRequest';
  /** The email address of the author of this auto-merge request. */
  authorEmail?: Maybe<Scalars['String']>;
  /**
   * The commit message of the auto-merge request. If a merge queue is required by
   * the base branch, this value will be set by the merge queue when merging.
   */
  commitBody?: Maybe<Scalars['String']>;
  /**
   * The commit title of the auto-merge request. If a merge queue is required by
   * the base branch, this value will be set by the merge queue when merging
   */
  commitHeadline?: Maybe<Scalars['String']>;
  /** When was this auto-merge request was enabled. */
  enabledAt?: Maybe<Scalars['DateTime']>;
  /** The actor who created the auto-merge request. */
  enabledBy?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /**
   * The merge method of the auto-merge request. If a merge queue is required by
   * the base branch, this value will be set by the merge queue when merging.
   */
  mergeMethod: PullRequestMergeMethod;
  /** The pull request that this auto-merge request is set against. */
  pullRequest: PullRequest;
};

/** Represents a 'auto_rebase_enabled' event on a given pull request. */
export type AutoRebaseEnabledEvent = Node & {
  __typename?: 'AutoRebaseEnabledEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** The user who enabled auto-merge (rebase) for this Pull Request */
  enabler?: Maybe<User>;
  id: Scalars['ID'];
  /** PullRequest referenced by event. */
  pullRequest?: Maybe<PullRequest>;
};

/** Represents a 'auto_squash_enabled' event on a given pull request. */
export type AutoSquashEnabledEvent = Node & {
  __typename?: 'AutoSquashEnabledEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** The user who enabled auto-merge (squash) for this Pull Request */
  enabler?: Maybe<User>;
  id: Scalars['ID'];
  /** PullRequest referenced by event. */
  pullRequest?: Maybe<PullRequest>;
};

/** Represents a 'automatic_base_change_failed' event on a given pull request. */
export type AutomaticBaseChangeFailedEvent = Node & {
  __typename?: 'AutomaticBaseChangeFailedEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  id: Scalars['ID'];
  /** The new base for this PR */
  newBase: Scalars['String'];
  /** The old base for this PR */
  oldBase: Scalars['String'];
  /** PullRequest referenced by event. */
  pullRequest: PullRequest;
};

/** Represents a 'automatic_base_change_succeeded' event on a given pull request. */
export type AutomaticBaseChangeSucceededEvent = Node & {
  __typename?: 'AutomaticBaseChangeSucceededEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  id: Scalars['ID'];
  /** The new base for this PR */
  newBase: Scalars['String'];
  /** The old base for this PR */
  oldBase: Scalars['String'];
  /** PullRequest referenced by event. */
  pullRequest: PullRequest;
};

/** Represents a 'base_ref_changed' event on a given issue or pull request. */
export type BaseRefChangedEvent = Node & {
  __typename?: 'BaseRefChangedEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Identifies the name of the base ref for the pull request after it was changed. */
  currentRefName: Scalars['String'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  id: Scalars['ID'];
  /** Identifies the name of the base ref for the pull request before it was changed. */
  previousRefName: Scalars['String'];
  /** PullRequest referenced by event. */
  pullRequest: PullRequest;
};

/** Represents a 'base_ref_deleted' event on a given pull request. */
export type BaseRefDeletedEvent = Node & {
  __typename?: 'BaseRefDeletedEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the name of the Ref associated with the `base_ref_deleted` event. */
  baseRefName?: Maybe<Scalars['String']>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  id: Scalars['ID'];
  /** PullRequest referenced by event. */
  pullRequest?: Maybe<PullRequest>;
};

/** Represents a 'base_ref_force_pushed' event on a given pull request. */
export type BaseRefForcePushedEvent = Node & {
  __typename?: 'BaseRefForcePushedEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the after commit SHA for the 'base_ref_force_pushed' event. */
  afterCommit?: Maybe<Commit>;
  /** Identifies the before commit SHA for the 'base_ref_force_pushed' event. */
  beforeCommit?: Maybe<Commit>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  id: Scalars['ID'];
  /** PullRequest referenced by event. */
  pullRequest: PullRequest;
  /** Identifies the fully qualified ref name for the 'base_ref_force_pushed' event. */
  ref?: Maybe<Ref>;
};

/** Represents a Git blame. */
export type Blame = {
  __typename?: 'Blame';
  /** The list of ranges from a Git blame. */
  ranges: Array<BlameRange>;
};

/** Represents a range of information from a Git blame. */
export type BlameRange = {
  __typename?: 'BlameRange';
  /**
   * Identifies the recency of the change, from 1 (new) to 10 (old). This is
   * calculated as a 2-quantile and determines the length of distance between the
   * median age of all the changes in the file and the recency of the current
   * range's change.
   */
  age: Scalars['Int'];
  /** Identifies the line author */
  commit: Commit;
  /** The ending line for the range */
  endingLine: Scalars['Int'];
  /** The starting line for the range */
  startingLine: Scalars['Int'];
};

/** Represents a Git blob. */
export type Blob = GitObject & Node & {
  __typename?: 'Blob';
  /** An abbreviated version of the Git object ID */
  abbreviatedOid: Scalars['String'];
  /** Byte size of Blob object */
  byteSize: Scalars['Int'];
  /** The HTTP path for this Git object */
  commitResourcePath: Scalars['URI'];
  /** The HTTP URL for this Git object */
  commitUrl: Scalars['URI'];
  id: Scalars['ID'];
  /** Indicates whether the Blob is binary or text. Returns null if unable to determine the encoding. */
  isBinary?: Maybe<Scalars['Boolean']>;
  /** Indicates whether the contents is truncated */
  isTruncated: Scalars['Boolean'];
  /** The Git object ID */
  oid: Scalars['GitObjectID'];
  /** The Repository the Git object belongs to */
  repository: Repository;
  /** UTF8 text data or null if the Blob is binary */
  text?: Maybe<Scalars['String']>;
};

/** A special type of user which takes actions on behalf of GitHub Apps. */
export type Bot = Actor & Node & UniformResourceLocatable & {
  __typename?: 'Bot';
  /** A URL pointing to the GitHub App's public avatar. */
  avatarUrl: Scalars['URI'];
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  id: Scalars['ID'];
  /** The username of the actor. */
  login: Scalars['String'];
  /** The HTTP path for this bot */
  resourcePath: Scalars['URI'];
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
  /** The HTTP URL for this bot */
  url: Scalars['URI'];
};


/** A special type of user which takes actions on behalf of GitHub Apps. */
export type BotAvatarUrlArgs = {
  size?: InputMaybe<Scalars['Int']>;
};

/** Types which can be actors for `BranchActorAllowance` objects. */
export type BranchActorAllowanceActor = App | Team | User;

/** A branch protection rule. */
export type BranchProtectionRule = Node & {
  __typename?: 'BranchProtectionRule';
  /** Can this branch be deleted. */
  allowsDeletions: Scalars['Boolean'];
  /** Are force pushes allowed on this branch. */
  allowsForcePushes: Scalars['Boolean'];
  /** Is branch creation a protected operation. */
  blocksCreations: Scalars['Boolean'];
  /** A list of conflicts matching branches protection rule and other branch protection rules */
  branchProtectionRuleConflicts: BranchProtectionRuleConflictConnection;
  /** A list of actors able to force push for this branch protection rule. */
  bypassForcePushAllowances: BypassForcePushAllowanceConnection;
  /** A list of actors able to bypass PRs for this branch protection rule. */
  bypassPullRequestAllowances: BypassPullRequestAllowanceConnection;
  /** The actor who created this branch protection rule. */
  creator?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** Will new commits pushed to matching branches dismiss pull request review approvals. */
  dismissesStaleReviews: Scalars['Boolean'];
  id: Scalars['ID'];
  /** Can admins overwrite branch protection. */
  isAdminEnforced: Scalars['Boolean'];
  /**
   * Whether users can pull changes from upstream when the branch is locked. Set to
   * `true` to allow fork syncing. Set to `false` to prevent fork syncing.
   */
  lockAllowsFetchAndMerge: Scalars['Boolean'];
  /** Whether to set the branch as read-only. If this is true, users will not be able to push to the branch. */
  lockBranch: Scalars['Boolean'];
  /** Repository refs that are protected by this rule */
  matchingRefs: RefConnection;
  /** Identifies the protection rule pattern. */
  pattern: Scalars['String'];
  /** A list push allowances for this branch protection rule. */
  pushAllowances: PushAllowanceConnection;
  /** The repository associated with this branch protection rule. */
  repository?: Maybe<Repository>;
  /** Whether the most recent push must be approved by someone other than the person who pushed it */
  requireLastPushApproval: Scalars['Boolean'];
  /** Number of approving reviews required to update matching branches. */
  requiredApprovingReviewCount?: Maybe<Scalars['Int']>;
  /** List of required deployment environments that must be deployed successfully to update matching branches */
  requiredDeploymentEnvironments?: Maybe<Array<Maybe<Scalars['String']>>>;
  /** List of required status check contexts that must pass for commits to be accepted to matching branches. */
  requiredStatusCheckContexts?: Maybe<Array<Maybe<Scalars['String']>>>;
  /** List of required status checks that must pass for commits to be accepted to matching branches. */
  requiredStatusChecks?: Maybe<Array<RequiredStatusCheckDescription>>;
  /** Are approving reviews required to update matching branches. */
  requiresApprovingReviews: Scalars['Boolean'];
  /** Are reviews from code owners required to update matching branches. */
  requiresCodeOwnerReviews: Scalars['Boolean'];
  /** Are commits required to be signed. */
  requiresCommitSignatures: Scalars['Boolean'];
  /** Are conversations required to be resolved before merging. */
  requiresConversationResolution: Scalars['Boolean'];
  /** Does this branch require deployment to specific environments before merging */
  requiresDeployments: Scalars['Boolean'];
  /** Are merge commits prohibited from being pushed to this branch. */
  requiresLinearHistory: Scalars['Boolean'];
  /** Are status checks required to update matching branches. */
  requiresStatusChecks: Scalars['Boolean'];
  /** Are branches required to be up to date before merging. */
  requiresStrictStatusChecks: Scalars['Boolean'];
  /** Is pushing to matching branches restricted. */
  restrictsPushes: Scalars['Boolean'];
  /** Is dismissal of pull request reviews restricted. */
  restrictsReviewDismissals: Scalars['Boolean'];
  /** A list review dismissal allowances for this branch protection rule. */
  reviewDismissalAllowances: ReviewDismissalAllowanceConnection;
};


/** A branch protection rule. */
export type BranchProtectionRuleBranchProtectionRuleConflictsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A branch protection rule. */
export type BranchProtectionRuleBypassForcePushAllowancesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A branch protection rule. */
export type BranchProtectionRuleBypassPullRequestAllowancesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A branch protection rule. */
export type BranchProtectionRuleMatchingRefsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  query?: InputMaybe<Scalars['String']>;
};


/** A branch protection rule. */
export type BranchProtectionRulePushAllowancesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A branch protection rule. */
export type BranchProtectionRuleReviewDismissalAllowancesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};

/** A conflict between two branch protection rules. */
export type BranchProtectionRuleConflict = {
  __typename?: 'BranchProtectionRuleConflict';
  /** Identifies the branch protection rule. */
  branchProtectionRule?: Maybe<BranchProtectionRule>;
  /** Identifies the conflicting branch protection rule. */
  conflictingBranchProtectionRule?: Maybe<BranchProtectionRule>;
  /** Identifies the branch ref that has conflicting rules */
  ref?: Maybe<Ref>;
};

/** The connection type for BranchProtectionRuleConflict. */
export type BranchProtectionRuleConflictConnection = {
  __typename?: 'BranchProtectionRuleConflictConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<BranchProtectionRuleConflictEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<BranchProtectionRuleConflict>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type BranchProtectionRuleConflictEdge = {
  __typename?: 'BranchProtectionRuleConflictEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<BranchProtectionRuleConflict>;
};

/** The connection type for BranchProtectionRule. */
export type BranchProtectionRuleConnection = {
  __typename?: 'BranchProtectionRuleConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<BranchProtectionRuleEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<BranchProtectionRule>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type BranchProtectionRuleEdge = {
  __typename?: 'BranchProtectionRuleEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<BranchProtectionRule>;
};

/** A user, team, or app who has the ability to bypass a force push requirement on a protected branch. */
export type BypassForcePushAllowance = Node & {
  __typename?: 'BypassForcePushAllowance';
  /** The actor that can force push. */
  actor?: Maybe<BranchActorAllowanceActor>;
  /** Identifies the branch protection rule associated with the allowed user, team, or app. */
  branchProtectionRule?: Maybe<BranchProtectionRule>;
  id: Scalars['ID'];
};

/** The connection type for BypassForcePushAllowance. */
export type BypassForcePushAllowanceConnection = {
  __typename?: 'BypassForcePushAllowanceConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<BypassForcePushAllowanceEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<BypassForcePushAllowance>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type BypassForcePushAllowanceEdge = {
  __typename?: 'BypassForcePushAllowanceEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<BypassForcePushAllowance>;
};

/** A user, team, or app who has the ability to bypass a pull request requirement on a protected branch. */
export type BypassPullRequestAllowance = Node & {
  __typename?: 'BypassPullRequestAllowance';
  /** The actor that can bypass. */
  actor?: Maybe<BranchActorAllowanceActor>;
  /** Identifies the branch protection rule associated with the allowed user, team, or app. */
  branchProtectionRule?: Maybe<BranchProtectionRule>;
  id: Scalars['ID'];
};

/** The connection type for BypassPullRequestAllowance. */
export type BypassPullRequestAllowanceConnection = {
  __typename?: 'BypassPullRequestAllowanceConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<BypassPullRequestAllowanceEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<BypassPullRequestAllowance>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type BypassPullRequestAllowanceEdge = {
  __typename?: 'BypassPullRequestAllowanceEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<BypassPullRequestAllowance>;
};

/** The Common Vulnerability Scoring System */
export type Cvss = {
  __typename?: 'CVSS';
  /** The CVSS score associated with this advisory */
  score: Scalars['Float'];
  /** The CVSS vector string associated with this advisory */
  vectorString?: Maybe<Scalars['String']>;
};

/** A common weakness enumeration */
export type Cwe = Node & {
  __typename?: 'CWE';
  /** The id of the CWE */
  cweId: Scalars['String'];
  /** A detailed description of this CWE */
  description: Scalars['String'];
  id: Scalars['ID'];
  /** The name of this CWE */
  name: Scalars['String'];
};

/** The connection type for CWE. */
export type CweConnection = {
  __typename?: 'CWEConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<CweEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<Cwe>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type CweEdge = {
  __typename?: 'CWEEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<Cwe>;
};

/** Autogenerated input type of CancelEnterpriseAdminInvitation */
export type CancelEnterpriseAdminInvitationInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The Node ID of the pending enterprise administrator invitation. */
  invitationId: Scalars['ID'];
};

/** Autogenerated return type of CancelEnterpriseAdminInvitation */
export type CancelEnterpriseAdminInvitationPayload = {
  __typename?: 'CancelEnterpriseAdminInvitationPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The invitation that was canceled. */
  invitation?: Maybe<EnterpriseAdministratorInvitation>;
  /** A message confirming the result of canceling an administrator invitation. */
  message?: Maybe<Scalars['String']>;
};

/** Autogenerated input type of CancelSponsorship */
export type CancelSponsorshipInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /**
   * The ID of the user or organization who is acting as the sponsor, paying for
   * the sponsorship. Required if sponsorLogin is not given.
   */
  sponsorId?: InputMaybe<Scalars['ID']>;
  /**
   * The username of the user or organization who is acting as the sponsor, paying
   * for the sponsorship. Required if sponsorId is not given.
   */
  sponsorLogin?: InputMaybe<Scalars['String']>;
  /** The ID of the user or organization who is receiving the sponsorship. Required if sponsorableLogin is not given. */
  sponsorableId?: InputMaybe<Scalars['ID']>;
  /** The username of the user or organization who is receiving the sponsorship. Required if sponsorableId is not given. */
  sponsorableLogin?: InputMaybe<Scalars['String']>;
};

/** Autogenerated return type of CancelSponsorship */
export type CancelSponsorshipPayload = {
  __typename?: 'CancelSponsorshipPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The tier that was being used at the time of cancellation. */
  sponsorsTier?: Maybe<SponsorsTier>;
};

/** Autogenerated input type of ChangeUserStatus */
export type ChangeUserStatusInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The emoji to represent your status. Can either be a native Unicode emoji or an emoji name with colons, e.g., :grinning:. */
  emoji?: InputMaybe<Scalars['String']>;
  /** If set, the user status will not be shown after this date. */
  expiresAt?: InputMaybe<Scalars['DateTime']>;
  /** Whether this status should indicate you are not fully available on GitHub, e.g., you are away. */
  limitedAvailability?: InputMaybe<Scalars['Boolean']>;
  /** A short description of your current status. */
  message?: InputMaybe<Scalars['String']>;
  /**
   * The ID of the organization whose members will be allowed to see the status. If
   * omitted, the status will be publicly visible.
   */
  organizationId?: InputMaybe<Scalars['ID']>;
};

/** Autogenerated return type of ChangeUserStatus */
export type ChangeUserStatusPayload = {
  __typename?: 'ChangeUserStatusPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** Your updated status. */
  status?: Maybe<UserStatus>;
};

/** A single check annotation. */
export type CheckAnnotation = {
  __typename?: 'CheckAnnotation';
  /** The annotation's severity level. */
  annotationLevel?: Maybe<CheckAnnotationLevel>;
  /** The path to the file that this annotation was made on. */
  blobUrl: Scalars['URI'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** The position of this annotation. */
  location: CheckAnnotationSpan;
  /** The annotation's message. */
  message: Scalars['String'];
  /** The path that this annotation was made on. */
  path: Scalars['String'];
  /** Additional information about the annotation. */
  rawDetails?: Maybe<Scalars['String']>;
  /** The annotation's title */
  title?: Maybe<Scalars['String']>;
};

/** The connection type for CheckAnnotation. */
export type CheckAnnotationConnection = {
  __typename?: 'CheckAnnotationConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<CheckAnnotationEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<CheckAnnotation>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** Information from a check run analysis to specific lines of code. */
export type CheckAnnotationData = {
  /** Represents an annotation's information level */
  annotationLevel: CheckAnnotationLevel;
  /** The location of the annotation */
  location: CheckAnnotationRange;
  /** A short description of the feedback for these lines of code. */
  message: Scalars['String'];
  /** The path of the file to add an annotation to. */
  path: Scalars['String'];
  /** Details about this annotation. */
  rawDetails?: InputMaybe<Scalars['String']>;
  /** The title that represents the annotation. */
  title?: InputMaybe<Scalars['String']>;
};

/** An edge in a connection. */
export type CheckAnnotationEdge = {
  __typename?: 'CheckAnnotationEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<CheckAnnotation>;
};

/** Represents an annotation's information level. */
export type CheckAnnotationLevel =
  /** An annotation indicating an inescapable error. */
  | 'FAILURE'
  /** An annotation indicating some information. */
  | 'NOTICE'
  /** An annotation indicating an ignorable error. */
  | 'WARNING';

/** A character position in a check annotation. */
export type CheckAnnotationPosition = {
  __typename?: 'CheckAnnotationPosition';
  /** Column number (1 indexed). */
  column?: Maybe<Scalars['Int']>;
  /** Line number (1 indexed). */
  line: Scalars['Int'];
};

/** Information from a check run analysis to specific lines of code. */
export type CheckAnnotationRange = {
  /** The ending column of the range. */
  endColumn?: InputMaybe<Scalars['Int']>;
  /** The ending line of the range. */
  endLine: Scalars['Int'];
  /** The starting column of the range. */
  startColumn?: InputMaybe<Scalars['Int']>;
  /** The starting line of the range. */
  startLine: Scalars['Int'];
};

/** An inclusive pair of positions for a check annotation. */
export type CheckAnnotationSpan = {
  __typename?: 'CheckAnnotationSpan';
  /** End position (inclusive). */
  end: CheckAnnotationPosition;
  /** Start position (inclusive). */
  start: CheckAnnotationPosition;
};

/** The possible states for a check suite or run conclusion. */
export type CheckConclusionState =
  /** The check suite or run requires action. */
  | 'ACTION_REQUIRED'
  /** The check suite or run has been cancelled. */
  | 'CANCELLED'
  /** The check suite or run has failed. */
  | 'FAILURE'
  /** The check suite or run was neutral. */
  | 'NEUTRAL'
  /** The check suite or run was skipped. */
  | 'SKIPPED'
  /** The check suite or run was marked stale by GitHub. Only GitHub can use this conclusion. */
  | 'STALE'
  /** The check suite or run has failed at startup. */
  | 'STARTUP_FAILURE'
  /** The check suite or run has succeeded. */
  | 'SUCCESS'
  /** The check suite or run has timed out. */
  | 'TIMED_OUT';

/** A check run. */
export type CheckRun = Node & RequirableByPullRequest & UniformResourceLocatable & {
  __typename?: 'CheckRun';
  /** The check run's annotations */
  annotations?: Maybe<CheckAnnotationConnection>;
  /** The check suite that this run is a part of. */
  checkSuite: CheckSuite;
  /** Identifies the date and time when the check run was completed. */
  completedAt?: Maybe<Scalars['DateTime']>;
  /** The conclusion of the check run. */
  conclusion?: Maybe<CheckConclusionState>;
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** The corresponding deployment for this job, if any */
  deployment?: Maybe<Deployment>;
  /** The URL from which to find full details of the check run on the integrator's site. */
  detailsUrl?: Maybe<Scalars['URI']>;
  /** A reference for the check run on the integrator's system. */
  externalId?: Maybe<Scalars['String']>;
  id: Scalars['ID'];
  /** Whether this is required to pass before merging for a specific pull request. */
  isRequired: Scalars['Boolean'];
  /** The name of the check for this check run. */
  name: Scalars['String'];
  /** Information about a pending deployment, if any, in this check run */
  pendingDeploymentRequest?: Maybe<DeploymentRequest>;
  /** The permalink to the check run summary. */
  permalink: Scalars['URI'];
  /** The repository associated with this check run. */
  repository: Repository;
  /** The HTTP path for this check run. */
  resourcePath: Scalars['URI'];
  /** Identifies the date and time when the check run was started. */
  startedAt?: Maybe<Scalars['DateTime']>;
  /** The current status of the check run. */
  status: CheckStatusState;
  /** The check run's steps */
  steps?: Maybe<CheckStepConnection>;
  /** A string representing the check run's summary */
  summary?: Maybe<Scalars['String']>;
  /** A string representing the check run's text */
  text?: Maybe<Scalars['String']>;
  /** A string representing the check run */
  title?: Maybe<Scalars['String']>;
  /** The HTTP URL for this check run. */
  url: Scalars['URI'];
};


/** A check run. */
export type CheckRunAnnotationsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A check run. */
export type CheckRunIsRequiredArgs = {
  pullRequestId?: InputMaybe<Scalars['ID']>;
  pullRequestNumber?: InputMaybe<Scalars['Int']>;
};


/** A check run. */
export type CheckRunStepsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  number?: InputMaybe<Scalars['Int']>;
};

/** Possible further actions the integrator can perform. */
export type CheckRunAction = {
  /** A short explanation of what this action would do. */
  description: Scalars['String'];
  /** A reference for the action on the integrator's system.  */
  identifier: Scalars['String'];
  /** The text to be displayed on a button in the web UI. */
  label: Scalars['String'];
};

/** The connection type for CheckRun. */
export type CheckRunConnection = {
  __typename?: 'CheckRunConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<CheckRunEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<CheckRun>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type CheckRunEdge = {
  __typename?: 'CheckRunEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<CheckRun>;
};

/** The filters that are available when fetching check runs. */
export type CheckRunFilter = {
  /** Filters the check runs created by this application ID. */
  appId?: InputMaybe<Scalars['Int']>;
  /** Filters the check runs by this name. */
  checkName?: InputMaybe<Scalars['String']>;
  /** Filters the check runs by this type. */
  checkType?: InputMaybe<CheckRunType>;
  /** Filters the check runs by these conclusions. */
  conclusions?: InputMaybe<Array<CheckConclusionState>>;
  /** Filters the check runs by this status. Superceded by statuses. */
  status?: InputMaybe<CheckStatusState>;
  /** Filters the check runs by this status. Overrides status. */
  statuses?: InputMaybe<Array<CheckStatusState>>;
};

/** Descriptive details about the check run. */
export type CheckRunOutput = {
  /** The annotations that are made as part of the check run. */
  annotations?: InputMaybe<Array<CheckAnnotationData>>;
  /** Images attached to the check run output displayed in the GitHub pull request UI. */
  images?: InputMaybe<Array<CheckRunOutputImage>>;
  /** The summary of the check run (supports Commonmark). */
  summary: Scalars['String'];
  /** The details of the check run (supports Commonmark). */
  text?: InputMaybe<Scalars['String']>;
  /** A title to provide for this check run. */
  title: Scalars['String'];
};

/** Images attached to the check run output displayed in the GitHub pull request UI. */
export type CheckRunOutputImage = {
  /** The alternative text for the image. */
  alt: Scalars['String'];
  /** A short image description. */
  caption?: InputMaybe<Scalars['String']>;
  /** The full URL of the image. */
  imageUrl: Scalars['URI'];
};

/** The possible states of a check run in a status rollup. */
export type CheckRunState =
  /** The check run requires action. */
  | 'ACTION_REQUIRED'
  /** The check run has been cancelled. */
  | 'CANCELLED'
  /** The check run has been completed. */
  | 'COMPLETED'
  /** The check run has failed. */
  | 'FAILURE'
  /** The check run is in progress. */
  | 'IN_PROGRESS'
  /** The check run was neutral. */
  | 'NEUTRAL'
  /** The check run is in pending state. */
  | 'PENDING'
  /** The check run has been queued. */
  | 'QUEUED'
  /** The check run was skipped. */
  | 'SKIPPED'
  /** The check run was marked stale by GitHub. Only GitHub can use this conclusion. */
  | 'STALE'
  /** The check run has failed at startup. */
  | 'STARTUP_FAILURE'
  /** The check run has succeeded. */
  | 'SUCCESS'
  /** The check run has timed out. */
  | 'TIMED_OUT'
  /** The check run is in waiting state. */
  | 'WAITING';

/** Represents a count of the state of a check run. */
export type CheckRunStateCount = {
  __typename?: 'CheckRunStateCount';
  /** The number of check runs with this state. */
  count: Scalars['Int'];
  /** The state of a check run. */
  state: CheckRunState;
};

/** The possible types of check runs. */
export type CheckRunType =
  /** Every check run available. */
  | 'ALL'
  /** The latest check run. */
  | 'LATEST';

/** The possible states for a check suite or run status. */
export type CheckStatusState =
  /** The check suite or run has been completed. */
  | 'COMPLETED'
  /** The check suite or run is in progress. */
  | 'IN_PROGRESS'
  /** The check suite or run is in pending state. */
  | 'PENDING'
  /** The check suite or run has been queued. */
  | 'QUEUED'
  /** The check suite or run has been requested. */
  | 'REQUESTED'
  /** The check suite or run is in waiting state. */
  | 'WAITING';

/** A single check step. */
export type CheckStep = {
  __typename?: 'CheckStep';
  /** Identifies the date and time when the check step was completed. */
  completedAt?: Maybe<Scalars['DateTime']>;
  /** The conclusion of the check step. */
  conclusion?: Maybe<CheckConclusionState>;
  /** A reference for the check step on the integrator's system. */
  externalId?: Maybe<Scalars['String']>;
  /** The step's name. */
  name: Scalars['String'];
  /** The index of the step in the list of steps of the parent check run. */
  number: Scalars['Int'];
  /** Number of seconds to completion. */
  secondsToCompletion?: Maybe<Scalars['Int']>;
  /** Identifies the date and time when the check step was started. */
  startedAt?: Maybe<Scalars['DateTime']>;
  /** The current status of the check step. */
  status: CheckStatusState;
};

/** The connection type for CheckStep. */
export type CheckStepConnection = {
  __typename?: 'CheckStepConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<CheckStepEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<CheckStep>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type CheckStepEdge = {
  __typename?: 'CheckStepEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<CheckStep>;
};

/** A check suite. */
export type CheckSuite = Node & {
  __typename?: 'CheckSuite';
  /** The GitHub App which created this check suite. */
  app?: Maybe<App>;
  /** The name of the branch for this check suite. */
  branch?: Maybe<Ref>;
  /** The check runs associated with a check suite. */
  checkRuns?: Maybe<CheckRunConnection>;
  /** The commit for this check suite */
  commit: Commit;
  /** The conclusion of this check suite. */
  conclusion?: Maybe<CheckConclusionState>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** The user who triggered the check suite. */
  creator?: Maybe<User>;
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  id: Scalars['ID'];
  /** A list of open pull requests matching the check suite. */
  matchingPullRequests?: Maybe<PullRequestConnection>;
  /** The push that triggered this check suite. */
  push?: Maybe<Push>;
  /** The repository associated with this check suite. */
  repository: Repository;
  /** The HTTP path for this check suite */
  resourcePath: Scalars['URI'];
  /** The status of this check suite. */
  status: CheckStatusState;
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
  /** The HTTP URL for this check suite */
  url: Scalars['URI'];
  /** The workflow run associated with this check suite. */
  workflowRun?: Maybe<WorkflowRun>;
};


/** A check suite. */
export type CheckSuiteCheckRunsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  filterBy?: InputMaybe<CheckRunFilter>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A check suite. */
export type CheckSuiteMatchingPullRequestsArgs = {
  after?: InputMaybe<Scalars['String']>;
  baseRefName?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  headRefName?: InputMaybe<Scalars['String']>;
  labels?: InputMaybe<Array<Scalars['String']>>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<IssueOrder>;
  states?: InputMaybe<Array<PullRequestState>>;
};

/** The auto-trigger preferences that are available for check suites. */
export type CheckSuiteAutoTriggerPreference = {
  /** The node ID of the application that owns the check suite. */
  appId: Scalars['ID'];
  /** Set to `true` to enable automatic creation of CheckSuite events upon pushes to the repository. */
  setting: Scalars['Boolean'];
};

/** The connection type for CheckSuite. */
export type CheckSuiteConnection = {
  __typename?: 'CheckSuiteConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<CheckSuiteEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<CheckSuite>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type CheckSuiteEdge = {
  __typename?: 'CheckSuiteEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<CheckSuite>;
};

/** The filters that are available when fetching check suites. */
export type CheckSuiteFilter = {
  /** Filters the check suites created by this application ID. */
  appId?: InputMaybe<Scalars['Int']>;
  /** Filters the check suites by this name. */
  checkName?: InputMaybe<Scalars['String']>;
};

/** An object which can have its data claimed or claim data from another. */
export type Claimable = Mannequin | User;

/** Autogenerated input type of ClearLabelsFromLabelable */
export type ClearLabelsFromLabelableInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The id of the labelable object to clear the labels from. */
  labelableId: Scalars['ID'];
};

/** Autogenerated return type of ClearLabelsFromLabelable */
export type ClearLabelsFromLabelablePayload = {
  __typename?: 'ClearLabelsFromLabelablePayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The item that was unlabeled. */
  labelable?: Maybe<Discussion | Issue | PullRequest>;
};

/** Autogenerated input type of ClearProjectV2ItemFieldValue */
export type ClearProjectV2ItemFieldValueInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the field to be cleared. */
  fieldId: Scalars['ID'];
  /** The ID of the item to be cleared. */
  itemId: Scalars['ID'];
  /** The ID of the Project. */
  projectId: Scalars['ID'];
};

/** Autogenerated return type of ClearProjectV2ItemFieldValue */
export type ClearProjectV2ItemFieldValuePayload = {
  __typename?: 'ClearProjectV2ItemFieldValuePayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The updated item. */
  projectV2Item?: Maybe<ProjectV2Item>;
};

/** Autogenerated input type of CloneProject */
export type CloneProjectInput = {
  /** The description of the project. */
  body?: InputMaybe<Scalars['String']>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** Whether or not to clone the source project's workflows. */
  includeWorkflows: Scalars['Boolean'];
  /** The name of the project. */
  name: Scalars['String'];
  /** The visibility of the project, defaults to false (private). */
  public?: InputMaybe<Scalars['Boolean']>;
  /** The source project to clone. */
  sourceId: Scalars['ID'];
  /** The owner ID to create the project under. */
  targetOwnerId: Scalars['ID'];
};

/** Autogenerated return type of CloneProject */
export type CloneProjectPayload = {
  __typename?: 'CloneProjectPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The id of the JobStatus for populating cloned fields. */
  jobStatusId?: Maybe<Scalars['String']>;
  /** The new cloned project. */
  project?: Maybe<Project>;
};

/** Autogenerated input type of CloneTemplateRepository */
export type CloneTemplateRepositoryInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** A short description of the new repository. */
  description?: InputMaybe<Scalars['String']>;
  /**
   * Whether to copy all branches from the template to the new repository. Defaults
   * to copying only the default branch of the template.
   */
  includeAllBranches?: InputMaybe<Scalars['Boolean']>;
  /** The name of the new repository. */
  name: Scalars['String'];
  /** The ID of the owner for the new repository. */
  ownerId: Scalars['ID'];
  /** The Node ID of the template repository. */
  repositoryId: Scalars['ID'];
  /** Indicates the repository's visibility level. */
  visibility: RepositoryVisibility;
};

/** Autogenerated return type of CloneTemplateRepository */
export type CloneTemplateRepositoryPayload = {
  __typename?: 'CloneTemplateRepositoryPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The new repository. */
  repository?: Maybe<Repository>;
};

/** An object that can be closed */
export type Closable = {
  /** Indicates if the object is closed (definition of closed may depend on type) */
  closed: Scalars['Boolean'];
  /** Identifies the date and time when the object was closed. */
  closedAt?: Maybe<Scalars['DateTime']>;
  /** Indicates if the object can be closed by the viewer. */
  viewerCanClose: Scalars['Boolean'];
  /** Indicates if the object can be reopened by the viewer. */
  viewerCanReopen: Scalars['Boolean'];
};

/** Autogenerated input type of CloseDiscussion */
export type CloseDiscussionInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** ID of the discussion to be closed. */
  discussionId: Scalars['ID'];
  /** The reason why the discussion is being closed. */
  reason?: InputMaybe<DiscussionCloseReason>;
};

/** Autogenerated return type of CloseDiscussion */
export type CloseDiscussionPayload = {
  __typename?: 'CloseDiscussionPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The discussion that was closed. */
  discussion?: Maybe<Discussion>;
};

/** Autogenerated input type of CloseIssue */
export type CloseIssueInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** ID of the issue to be closed. */
  issueId: Scalars['ID'];
  /** The reason the issue is to be closed. */
  stateReason?: InputMaybe<IssueClosedStateReason>;
};

/** Autogenerated return type of CloseIssue */
export type CloseIssuePayload = {
  __typename?: 'CloseIssuePayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The issue that was closed. */
  issue?: Maybe<Issue>;
};

/** Autogenerated input type of ClosePullRequest */
export type ClosePullRequestInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** ID of the pull request to be closed. */
  pullRequestId: Scalars['ID'];
};

/** Autogenerated return type of ClosePullRequest */
export type ClosePullRequestPayload = {
  __typename?: 'ClosePullRequestPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The pull request that was closed. */
  pullRequest?: Maybe<PullRequest>;
};

/** Represents a 'closed' event on any `Closable`. */
export type ClosedEvent = Node & UniformResourceLocatable & {
  __typename?: 'ClosedEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Object that was closed. */
  closable: Discussion | Issue | Milestone | Project | ProjectV2 | PullRequest;
  /** Object which triggered the creation of this event. */
  closer?: Maybe<Closer>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  id: Scalars['ID'];
  /** The HTTP path for this closed event. */
  resourcePath: Scalars['URI'];
  /** The reason the issue state was changed to closed. */
  stateReason?: Maybe<IssueStateReason>;
  /** The HTTP URL for this closed event. */
  url: Scalars['URI'];
};

/** The object which triggered a `ClosedEvent`. */
export type Closer = Commit | PullRequest;

/** The Code of Conduct for a repository */
export type CodeOfConduct = Node & {
  __typename?: 'CodeOfConduct';
  /** The body of the Code of Conduct */
  body?: Maybe<Scalars['String']>;
  id: Scalars['ID'];
  /** The key for the Code of Conduct */
  key: Scalars['String'];
  /** The formal name of the Code of Conduct */
  name: Scalars['String'];
  /** The HTTP path for this Code of Conduct */
  resourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for this Code of Conduct */
  url?: Maybe<Scalars['URI']>;
};

/** Collaborators affiliation level with a subject. */
export type CollaboratorAffiliation =
  /** All collaborators the authenticated user can see. */
  | 'ALL'
  /** All collaborators with permissions to an organization-owned subject, regardless of organization membership status. */
  | 'DIRECT'
  /** All outside collaborators of an organization-owned subject. */
  | 'OUTSIDE';

/** Represents a comment. */
export type Comment = {
  /** The actor who authored the comment. */
  author?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Author's association with the subject of the comment. */
  authorAssociation: CommentAuthorAssociation;
  /** The body as Markdown. */
  body: Scalars['String'];
  /** The body rendered to HTML. */
  bodyHTML: Scalars['HTML'];
  /** The body rendered to text. */
  bodyText: Scalars['String'];
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Check if this comment was created via an email reply. */
  createdViaEmail: Scalars['Boolean'];
  /** The actor who edited the comment. */
  editor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  id: Scalars['ID'];
  /** Check if this comment was edited and includes an edit with the creation data */
  includesCreatedEdit: Scalars['Boolean'];
  /** The moment the editor made the last edit */
  lastEditedAt?: Maybe<Scalars['DateTime']>;
  /** Identifies when the comment was published at. */
  publishedAt?: Maybe<Scalars['DateTime']>;
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
  /** A list of edits to this content. */
  userContentEdits?: Maybe<UserContentEditConnection>;
  /** Did the viewer author this comment. */
  viewerDidAuthor: Scalars['Boolean'];
};


/** Represents a comment. */
export type CommentUserContentEditsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};

/** A comment author association with repository. */
export type CommentAuthorAssociation =
  /** Author has been invited to collaborate on the repository. */
  | 'COLLABORATOR'
  /** Author has previously committed to the repository. */
  | 'CONTRIBUTOR'
  /** Author has not previously committed to GitHub. */
  | 'FIRST_TIMER'
  /** Author has not previously committed to the repository. */
  | 'FIRST_TIME_CONTRIBUTOR'
  /** Author is a placeholder for an unclaimed user. */
  | 'MANNEQUIN'
  /** Author is a member of the organization that owns the repository. */
  | 'MEMBER'
  /** Author has no association with the repository. */
  | 'NONE'
  /** Author is the owner of the repository. */
  | 'OWNER';

/** The possible errors that will prevent a user from updating a comment. */
export type CommentCannotUpdateReason =
  /** Unable to create comment because repository is archived. */
  | 'ARCHIVED'
  /** You cannot update this comment */
  | 'DENIED'
  /** You must be the author or have write access to this repository to update this comment. */
  | 'INSUFFICIENT_ACCESS'
  /** Unable to create comment because issue is locked. */
  | 'LOCKED'
  /** You must be logged in to update this comment. */
  | 'LOGIN_REQUIRED'
  /** Repository is under maintenance. */
  | 'MAINTENANCE'
  /** At least one email address must be verified to update this comment. */
  | 'VERIFIED_EMAIL_REQUIRED';

/** Represents a 'comment_deleted' event on a given issue or pull request. */
export type CommentDeletedEvent = Node & {
  __typename?: 'CommentDeletedEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** The user who authored the deleted comment. */
  deletedCommentAuthor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  id: Scalars['ID'];
};

/** Represents a Git commit. */
export type Commit = GitObject & Node & Subscribable & UniformResourceLocatable & {
  __typename?: 'Commit';
  /** An abbreviated version of the Git object ID */
  abbreviatedOid: Scalars['String'];
  /** The number of additions in this commit. */
  additions: Scalars['Int'];
  /**
   * The merged Pull Request that introduced the commit to the repository. If the
   * commit is not present in the default branch, additionally returns open Pull
   * Requests associated with the commit
   */
  associatedPullRequests?: Maybe<PullRequestConnection>;
  /** Authorship details of the commit. */
  author?: Maybe<GitActor>;
  /** Check if the committer and the author match. */
  authoredByCommitter: Scalars['Boolean'];
  /** The datetime when this commit was authored. */
  authoredDate: Scalars['DateTime'];
  /**
   * The list of authors for this commit based on the git author and the Co-authored-by
   * message trailer. The git author will always be first.
   */
  authors: GitActorConnection;
  /** Fetches `git blame` information. */
  blame: Blame;
  /**
   * We recommend using the `changedFielsIfAvailable` field instead of
   * `changedFiles`, as `changedFiles` will cause your request to return an error
   * if GitHub is unable to calculate the number of changed files.
   * @deprecated `changedFiles` will be removed. Use `changedFilesIfAvailable` instead. Removal on 2023-01-01 UTC.
   */
  changedFiles: Scalars['Int'];
  /**
   * The number of changed files in this commit. If GitHub is unable to calculate
   * the number of changed files (for example due to a timeout), this will return
   * `null`. We recommend using this field instead of `changedFiles`.
   */
  changedFilesIfAvailable?: Maybe<Scalars['Int']>;
  /** The check suites associated with a commit. */
  checkSuites?: Maybe<CheckSuiteConnection>;
  /** Comments made on the commit. */
  comments: CommitCommentConnection;
  /** The HTTP path for this Git object */
  commitResourcePath: Scalars['URI'];
  /** The HTTP URL for this Git object */
  commitUrl: Scalars['URI'];
  /** The datetime when this commit was committed. */
  committedDate: Scalars['DateTime'];
  /** Check if committed via GitHub web UI. */
  committedViaWeb: Scalars['Boolean'];
  /** Committer details of the commit. */
  committer?: Maybe<GitActor>;
  /** The number of deletions in this commit. */
  deletions: Scalars['Int'];
  /** The deployments associated with a commit. */
  deployments?: Maybe<DeploymentConnection>;
  /** The tree entry representing the file located at the given path. */
  file?: Maybe<TreeEntry>;
  /** The linear commit history starting from (and including) this commit, in the same order as `git log`. */
  history: CommitHistoryConnection;
  id: Scalars['ID'];
  /** The Git commit message */
  message: Scalars['String'];
  /** The Git commit message body */
  messageBody: Scalars['String'];
  /** The commit message body rendered to HTML. */
  messageBodyHTML: Scalars['HTML'];
  /** The Git commit message headline */
  messageHeadline: Scalars['String'];
  /** The commit message headline rendered to HTML. */
  messageHeadlineHTML: Scalars['HTML'];
  /** The Git object ID */
  oid: Scalars['GitObjectID'];
  /** The organization this commit was made on behalf of. */
  onBehalfOf?: Maybe<Organization>;
  /** The parents of a commit. */
  parents: CommitConnection;
  /**
   * The datetime when this commit was pushed.
   * @deprecated `pushedDate` is no longer supported. Removal on 2023-07-01 UTC.
   */
  pushedDate?: Maybe<Scalars['DateTime']>;
  /** The Repository this commit belongs to */
  repository: Repository;
  /** The HTTP path for this commit */
  resourcePath: Scalars['URI'];
  /** Commit signing information, if present. */
  signature?: Maybe<GpgSignature | SmimeSignature | SshSignature | UnknownSignature>;
  /** Status information for this commit */
  status?: Maybe<Status>;
  /** Check and Status rollup information for this commit. */
  statusCheckRollup?: Maybe<StatusCheckRollup>;
  /** Returns a list of all submodules in this repository as of this Commit parsed from the .gitmodules file. */
  submodules: SubmoduleConnection;
  /**
   * Returns a URL to download a tarball archive for a repository.
   * Note: For private repositories, these links are temporary and expire after five minutes.
   */
  tarballUrl: Scalars['URI'];
  /** Commit's root Tree */
  tree: Tree;
  /** The HTTP path for the tree of this commit */
  treeResourcePath: Scalars['URI'];
  /** The HTTP URL for the tree of this commit */
  treeUrl: Scalars['URI'];
  /** The HTTP URL for this commit */
  url: Scalars['URI'];
  /** Check if the viewer is able to change their subscription status for the repository. */
  viewerCanSubscribe: Scalars['Boolean'];
  /** Identifies if the viewer is watching, not watching, or ignoring the subscribable entity. */
  viewerSubscription?: Maybe<SubscriptionState>;
  /**
   * Returns a URL to download a zipball archive for a repository.
   * Note: For private repositories, these links are temporary and expire after five minutes.
   */
  zipballUrl: Scalars['URI'];
};


/** Represents a Git commit. */
export type CommitAssociatedPullRequestsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<PullRequestOrder>;
};


/** Represents a Git commit. */
export type CommitAuthorsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** Represents a Git commit. */
export type CommitBlameArgs = {
  path: Scalars['String'];
};


/** Represents a Git commit. */
export type CommitCheckSuitesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  filterBy?: InputMaybe<CheckSuiteFilter>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** Represents a Git commit. */
export type CommitCommentsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** Represents a Git commit. */
export type CommitDeploymentsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  environments?: InputMaybe<Array<Scalars['String']>>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<DeploymentOrder>;
};


/** Represents a Git commit. */
export type CommitFileArgs = {
  path: Scalars['String'];
};


/** Represents a Git commit. */
export type CommitHistoryArgs = {
  after?: InputMaybe<Scalars['String']>;
  author?: InputMaybe<CommitAuthor>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  path?: InputMaybe<Scalars['String']>;
  since?: InputMaybe<Scalars['GitTimestamp']>;
  until?: InputMaybe<Scalars['GitTimestamp']>;
};


/** Represents a Git commit. */
export type CommitParentsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** Represents a Git commit. */
export type CommitSubmodulesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};

/** Specifies an author for filtering Git commits. */
export type CommitAuthor = {
  /** Email addresses to filter by. Commits authored by any of the specified email addresses will be returned. */
  emails?: InputMaybe<Array<Scalars['String']>>;
  /**
   * ID of a User to filter by. If non-null, only commits authored by this user
   * will be returned. This field takes precedence over emails.
   */
  id?: InputMaybe<Scalars['ID']>;
};

/** Represents a comment on a given Commit. */
export type CommitComment = Comment & Deletable & Minimizable & Node & Reactable & RepositoryNode & Updatable & UpdatableComment & {
  __typename?: 'CommitComment';
  /** The actor who authored the comment. */
  author?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Author's association with the subject of the comment. */
  authorAssociation: CommentAuthorAssociation;
  /** Identifies the comment body. */
  body: Scalars['String'];
  /** The body rendered to HTML. */
  bodyHTML: Scalars['HTML'];
  /** The body rendered to text. */
  bodyText: Scalars['String'];
  /** Identifies the commit associated with the comment, if the commit exists. */
  commit?: Maybe<Commit>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Check if this comment was created via an email reply. */
  createdViaEmail: Scalars['Boolean'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** The actor who edited the comment. */
  editor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  id: Scalars['ID'];
  /** Check if this comment was edited and includes an edit with the creation data */
  includesCreatedEdit: Scalars['Boolean'];
  /** Returns whether or not a comment has been minimized. */
  isMinimized: Scalars['Boolean'];
  /** The moment the editor made the last edit */
  lastEditedAt?: Maybe<Scalars['DateTime']>;
  /**
   * Returns why the comment was minimized. One of `abuse`, `off-topic`,
   * `outdated`, `resolved`, `duplicate` and `spam`. Note that the case and
   * formatting of these values differs from the inputs to the `MinimizeComment` mutation.
   */
  minimizedReason?: Maybe<Scalars['String']>;
  /** Identifies the file path associated with the comment. */
  path?: Maybe<Scalars['String']>;
  /** Identifies the line position associated with the comment. */
  position?: Maybe<Scalars['Int']>;
  /** Identifies when the comment was published at. */
  publishedAt?: Maybe<Scalars['DateTime']>;
  /** A list of reactions grouped by content left on the subject. */
  reactionGroups?: Maybe<Array<ReactionGroup>>;
  /** A list of Reactions left on the Issue. */
  reactions: ReactionConnection;
  /** The repository associated with this node. */
  repository: Repository;
  /** The HTTP path permalink for this commit comment. */
  resourcePath: Scalars['URI'];
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
  /** The HTTP URL permalink for this commit comment. */
  url: Scalars['URI'];
  /** A list of edits to this content. */
  userContentEdits?: Maybe<UserContentEditConnection>;
  /** Check if the current viewer can delete this object. */
  viewerCanDelete: Scalars['Boolean'];
  /** Check if the current viewer can minimize this object. */
  viewerCanMinimize: Scalars['Boolean'];
  /** Can user react to this subject */
  viewerCanReact: Scalars['Boolean'];
  /** Check if the current viewer can update this object. */
  viewerCanUpdate: Scalars['Boolean'];
  /** Reasons why the current viewer can not update this comment. */
  viewerCannotUpdateReasons: Array<CommentCannotUpdateReason>;
  /** Did the viewer author this comment. */
  viewerDidAuthor: Scalars['Boolean'];
};


/** Represents a comment on a given Commit. */
export type CommitCommentReactionsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  content?: InputMaybe<ReactionContent>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ReactionOrder>;
};


/** Represents a comment on a given Commit. */
export type CommitCommentUserContentEditsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};

/** The connection type for CommitComment. */
export type CommitCommentConnection = {
  __typename?: 'CommitCommentConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<CommitCommentEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<CommitComment>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type CommitCommentEdge = {
  __typename?: 'CommitCommentEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<CommitComment>;
};

/** A thread of comments on a commit. */
export type CommitCommentThread = Node & RepositoryNode & {
  __typename?: 'CommitCommentThread';
  /** The comments that exist in this thread. */
  comments: CommitCommentConnection;
  /** The commit the comments were made on. */
  commit?: Maybe<Commit>;
  id: Scalars['ID'];
  /** The file the comments were made on. */
  path?: Maybe<Scalars['String']>;
  /** The position in the diff for the commit that the comment was made on. */
  position?: Maybe<Scalars['Int']>;
  /** The repository associated with this node. */
  repository: Repository;
};


/** A thread of comments on a commit. */
export type CommitCommentThreadCommentsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};

/** The connection type for Commit. */
export type CommitConnection = {
  __typename?: 'CommitConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<CommitEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<Commit>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** Ordering options for commit contribution connections. */
export type CommitContributionOrder = {
  /** The ordering direction. */
  direction: OrderDirection;
  /** The field by which to order commit contributions. */
  field: CommitContributionOrderField;
};

/** Properties by which commit contribution connections can be ordered. */
export type CommitContributionOrderField =
  /** Order commit contributions by how many commits they represent. */
  | 'COMMIT_COUNT'
  /** Order commit contributions by when they were made. */
  | 'OCCURRED_AT';

/** This aggregates commits made by a user within one repository. */
export type CommitContributionsByRepository = {
  __typename?: 'CommitContributionsByRepository';
  /** The commit contributions, each representing a day. */
  contributions: CreatedCommitContributionConnection;
  /** The repository in which the commits were made. */
  repository: Repository;
  /** The HTTP path for the user's commits to the repository in this time range. */
  resourcePath: Scalars['URI'];
  /** The HTTP URL for the user's commits to the repository in this time range. */
  url: Scalars['URI'];
};


/** This aggregates commits made by a user within one repository. */
export type CommitContributionsByRepositoryContributionsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<CommitContributionOrder>;
};

/** An edge in a connection. */
export type CommitEdge = {
  __typename?: 'CommitEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<Commit>;
};

/** The connection type for Commit. */
export type CommitHistoryConnection = {
  __typename?: 'CommitHistoryConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<CommitEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<Commit>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** A message to include with a new commit */
export type CommitMessage = {
  /** The body of the message. */
  body?: InputMaybe<Scalars['String']>;
  /** The headline of the message. */
  headline: Scalars['String'];
};

/**
 * A git ref for a commit to be appended to.
 *
 * The ref must be a branch, i.e. its fully qualified name must start
 * with `refs/heads/` (although the input is not required to be fully
 * qualified).
 *
 * The Ref may be specified by its global node ID or by the
 * `repositoryNameWithOwner` and `branchName`.
 *
 * ### Examples
 *
 * Specify a branch using a global node ID:
 *
 *     { "id": "MDM6UmVmMTpyZWZzL2hlYWRzL21haW4=" }
 *
 * Specify a branch using `repositoryNameWithOwner` and `branchName`:
 *
 *     {
 *       "repositoryNameWithOwner": "github/graphql-client",
 *       "branchName": "main"
 *     }
 */
export type CommittableBranch = {
  /** The unqualified name of the branch to append the commit to. */
  branchName?: InputMaybe<Scalars['String']>;
  /** The Node ID of the Ref to be updated. */
  id?: InputMaybe<Scalars['ID']>;
  /** The nameWithOwner of the repository to commit to. */
  repositoryNameWithOwner?: InputMaybe<Scalars['String']>;
};

/** Represents a comparison between two commit revisions. */
export type Comparison = Node & {
  __typename?: 'Comparison';
  /** The number of commits ahead of the base branch. */
  aheadBy: Scalars['Int'];
  /** The base revision of this comparison. */
  baseTarget: Blob | Commit | Tag | Tree;
  /** The number of commits behind the base branch. */
  behindBy: Scalars['Int'];
  /** The commits which compose this comparison. */
  commits: ComparisonCommitConnection;
  /** The head revision of this comparison. */
  headTarget: Blob | Commit | Tag | Tree;
  id: Scalars['ID'];
  /** The status of this comparison. */
  status: ComparisonStatus;
};


/** Represents a comparison between two commit revisions. */
export type ComparisonCommitsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};

/** The connection type for Commit. */
export type ComparisonCommitConnection = {
  __typename?: 'ComparisonCommitConnection';
  /** The total count of authors and co-authors across all commits. */
  authorCount: Scalars['Int'];
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<CommitEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<Commit>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** The status of a git comparison between two refs. */
export type ComparisonStatus =
  /** The head ref is ahead of the base ref. */
  | 'AHEAD'
  /** The head ref is behind the base ref. */
  | 'BEHIND'
  /** The head ref is both ahead and behind of the base ref, indicating git history has diverged. */
  | 'DIVERGED'
  /** The head ref and base ref are identical. */
  | 'IDENTICAL';

/** Represents a 'connected' event on a given issue or pull request. */
export type ConnectedEvent = Node & {
  __typename?: 'ConnectedEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  id: Scalars['ID'];
  /** Reference originated in a different repository. */
  isCrossRepository: Scalars['Boolean'];
  /** Issue or pull request that made the reference. */
  source: ReferencedSubject;
  /** Issue or pull request which was connected. */
  subject: ReferencedSubject;
};

/** Represents a contribution a user made on GitHub, such as opening an issue. */
export type Contribution = {
  /**
   * Whether this contribution is associated with a record you do not have access to. For
   * example, your own 'first issue' contribution may have been made on a repository you can no
   * longer access.
   */
  isRestricted: Scalars['Boolean'];
  /** When this contribution was made. */
  occurredAt: Scalars['DateTime'];
  /** The HTTP path for this contribution. */
  resourcePath: Scalars['URI'];
  /** The HTTP URL for this contribution. */
  url: Scalars['URI'];
  /** The user who made this contribution. */
  user: User;
};

/** A calendar of contributions made on GitHub by a user. */
export type ContributionCalendar = {
  __typename?: 'ContributionCalendar';
  /** A list of hex color codes used in this calendar. The darker the color, the more contributions it represents. */
  colors: Array<Scalars['String']>;
  /** Determine if the color set was chosen because it's currently Halloween. */
  isHalloween: Scalars['Boolean'];
  /** A list of the months of contributions in this calendar. */
  months: Array<ContributionCalendarMonth>;
  /** The count of total contributions in the calendar. */
  totalContributions: Scalars['Int'];
  /** A list of the weeks of contributions in this calendar. */
  weeks: Array<ContributionCalendarWeek>;
};

/** Represents a single day of contributions on GitHub by a user. */
export type ContributionCalendarDay = {
  __typename?: 'ContributionCalendarDay';
  /** The hex color code that represents how many contributions were made on this day compared to others in the calendar. */
  color: Scalars['String'];
  /** How many contributions were made by the user on this day. */
  contributionCount: Scalars['Int'];
  /**
   * Indication of contributions, relative to other days. Can be used to indicate
   * which color to represent this day on a calendar.
   */
  contributionLevel: ContributionLevel;
  /** The day this square represents. */
  date: Scalars['Date'];
  /** A number representing which day of the week this square represents, e.g., 1 is Monday. */
  weekday: Scalars['Int'];
};

/** A month of contributions in a user's contribution graph. */
export type ContributionCalendarMonth = {
  __typename?: 'ContributionCalendarMonth';
  /** The date of the first day of this month. */
  firstDay: Scalars['Date'];
  /** The name of the month. */
  name: Scalars['String'];
  /** How many weeks started in this month. */
  totalWeeks: Scalars['Int'];
  /** The year the month occurred in. */
  year: Scalars['Int'];
};

/** A week of contributions in a user's contribution graph. */
export type ContributionCalendarWeek = {
  __typename?: 'ContributionCalendarWeek';
  /** The days of contributions in this week. */
  contributionDays: Array<ContributionCalendarDay>;
  /** The date of the earliest square in this week. */
  firstDay: Scalars['Date'];
};

/** Varying levels of contributions from none to many. */
export type ContributionLevel =
  /** Lowest 25% of days of contributions. */
  | 'FIRST_QUARTILE'
  /** Highest 25% of days of contributions. More contributions than the third quartile. */
  | 'FOURTH_QUARTILE'
  /** No contributions occurred. */
  | 'NONE'
  /** Second lowest 25% of days of contributions. More contributions than the first quartile. */
  | 'SECOND_QUARTILE'
  /** Second highest 25% of days of contributions. More contributions than second quartile, less than the fourth quartile. */
  | 'THIRD_QUARTILE';

/** Ordering options for contribution connections. */
export type ContributionOrder = {
  /** The ordering direction. */
  direction: OrderDirection;
};

/** A contributions collection aggregates contributions such as opened issues and commits created by a user. */
export type ContributionsCollection = {
  __typename?: 'ContributionsCollection';
  /** Commit contributions made by the user, grouped by repository. */
  commitContributionsByRepository: Array<CommitContributionsByRepository>;
  /** A calendar of this user's contributions on GitHub. */
  contributionCalendar: ContributionCalendar;
  /** The years the user has been making contributions with the most recent year first. */
  contributionYears: Array<Scalars['Int']>;
  /** Determine if this collection's time span ends in the current month. */
  doesEndInCurrentMonth: Scalars['Boolean'];
  /**
   * The date of the first restricted contribution the user made in this time
   * period. Can only be non-null when the user has enabled private contribution counts.
   */
  earliestRestrictedContributionDate?: Maybe<Scalars['Date']>;
  /** The ending date and time of this collection. */
  endedAt: Scalars['DateTime'];
  /**
   * The first issue the user opened on GitHub. This will be null if that issue was
   * opened outside the collection's time range and ignoreTimeRange is false. If
   * the issue is not visible but the user has opted to show private contributions,
   * a RestrictedContribution will be returned.
   */
  firstIssueContribution?: Maybe<CreatedIssueOrRestrictedContribution>;
  /**
   * The first pull request the user opened on GitHub. This will be null if that
   * pull request was opened outside the collection's time range and
   * ignoreTimeRange is not true. If the pull request is not visible but the user
   * has opted to show private contributions, a RestrictedContribution will be returned.
   */
  firstPullRequestContribution?: Maybe<CreatedPullRequestOrRestrictedContribution>;
  /**
   * The first repository the user created on GitHub. This will be null if that
   * first repository was created outside the collection's time range and
   * ignoreTimeRange is false. If the repository is not visible, then a
   * RestrictedContribution is returned.
   */
  firstRepositoryContribution?: Maybe<CreatedRepositoryOrRestrictedContribution>;
  /** Does the user have any more activity in the timeline that occurred prior to the collection's time range? */
  hasActivityInThePast: Scalars['Boolean'];
  /** Determine if there are any contributions in this collection. */
  hasAnyContributions: Scalars['Boolean'];
  /**
   * Determine if the user made any contributions in this time frame whose details
   * are not visible because they were made in a private repository. Can only be
   * true if the user enabled private contribution counts.
   */
  hasAnyRestrictedContributions: Scalars['Boolean'];
  /** Whether or not the collector's time span is all within the same day. */
  isSingleDay: Scalars['Boolean'];
  /** A list of issues the user opened. */
  issueContributions: CreatedIssueContributionConnection;
  /** Issue contributions made by the user, grouped by repository. */
  issueContributionsByRepository: Array<IssueContributionsByRepository>;
  /**
   * When the user signed up for GitHub. This will be null if that sign up date
   * falls outside the collection's time range and ignoreTimeRange is false.
   */
  joinedGitHubContribution?: Maybe<JoinedGitHubContribution>;
  /**
   * The date of the most recent restricted contribution the user made in this time
   * period. Can only be non-null when the user has enabled private contribution counts.
   */
  latestRestrictedContributionDate?: Maybe<Scalars['Date']>;
  /**
   * When this collection's time range does not include any activity from the user, use this
   * to get a different collection from an earlier time range that does have activity.
   */
  mostRecentCollectionWithActivity?: Maybe<ContributionsCollection>;
  /**
   * Returns a different contributions collection from an earlier time range than this one
   * that does not have any contributions.
   */
  mostRecentCollectionWithoutActivity?: Maybe<ContributionsCollection>;
  /**
   * The issue the user opened on GitHub that received the most comments in the specified
   * time frame.
   */
  popularIssueContribution?: Maybe<CreatedIssueContribution>;
  /**
   * The pull request the user opened on GitHub that received the most comments in the
   * specified time frame.
   */
  popularPullRequestContribution?: Maybe<CreatedPullRequestContribution>;
  /** Pull request contributions made by the user. */
  pullRequestContributions: CreatedPullRequestContributionConnection;
  /** Pull request contributions made by the user, grouped by repository. */
  pullRequestContributionsByRepository: Array<PullRequestContributionsByRepository>;
  /**
   * Pull request review contributions made by the user. Returns the most recently
   * submitted review for each PR reviewed by the user.
   */
  pullRequestReviewContributions: CreatedPullRequestReviewContributionConnection;
  /** Pull request review contributions made by the user, grouped by repository. */
  pullRequestReviewContributionsByRepository: Array<PullRequestReviewContributionsByRepository>;
  /** A list of repositories owned by the user that the user created in this time range. */
  repositoryContributions: CreatedRepositoryContributionConnection;
  /**
   * A count of contributions made by the user that the viewer cannot access. Only
   * non-zero when the user has chosen to share their private contribution counts.
   */
  restrictedContributionsCount: Scalars['Int'];
  /** The beginning date and time of this collection. */
  startedAt: Scalars['DateTime'];
  /** How many commits were made by the user in this time span. */
  totalCommitContributions: Scalars['Int'];
  /** How many issues the user opened. */
  totalIssueContributions: Scalars['Int'];
  /** How many pull requests the user opened. */
  totalPullRequestContributions: Scalars['Int'];
  /** How many pull request reviews the user left. */
  totalPullRequestReviewContributions: Scalars['Int'];
  /** How many different repositories the user committed to. */
  totalRepositoriesWithContributedCommits: Scalars['Int'];
  /** How many different repositories the user opened issues in. */
  totalRepositoriesWithContributedIssues: Scalars['Int'];
  /** How many different repositories the user left pull request reviews in. */
  totalRepositoriesWithContributedPullRequestReviews: Scalars['Int'];
  /** How many different repositories the user opened pull requests in. */
  totalRepositoriesWithContributedPullRequests: Scalars['Int'];
  /** How many repositories the user created. */
  totalRepositoryContributions: Scalars['Int'];
  /** The user who made the contributions in this collection. */
  user: User;
};


/** A contributions collection aggregates contributions such as opened issues and commits created by a user. */
export type ContributionsCollectionCommitContributionsByRepositoryArgs = {
  maxRepositories?: InputMaybe<Scalars['Int']>;
};


/** A contributions collection aggregates contributions such as opened issues and commits created by a user. */
export type ContributionsCollectionIssueContributionsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  excludeFirst?: InputMaybe<Scalars['Boolean']>;
  excludePopular?: InputMaybe<Scalars['Boolean']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ContributionOrder>;
};


/** A contributions collection aggregates contributions such as opened issues and commits created by a user. */
export type ContributionsCollectionIssueContributionsByRepositoryArgs = {
  excludeFirst?: InputMaybe<Scalars['Boolean']>;
  excludePopular?: InputMaybe<Scalars['Boolean']>;
  maxRepositories?: InputMaybe<Scalars['Int']>;
};


/** A contributions collection aggregates contributions such as opened issues and commits created by a user. */
export type ContributionsCollectionPullRequestContributionsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  excludeFirst?: InputMaybe<Scalars['Boolean']>;
  excludePopular?: InputMaybe<Scalars['Boolean']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ContributionOrder>;
};


/** A contributions collection aggregates contributions such as opened issues and commits created by a user. */
export type ContributionsCollectionPullRequestContributionsByRepositoryArgs = {
  excludeFirst?: InputMaybe<Scalars['Boolean']>;
  excludePopular?: InputMaybe<Scalars['Boolean']>;
  maxRepositories?: InputMaybe<Scalars['Int']>;
};


/** A contributions collection aggregates contributions such as opened issues and commits created by a user. */
export type ContributionsCollectionPullRequestReviewContributionsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ContributionOrder>;
};


/** A contributions collection aggregates contributions such as opened issues and commits created by a user. */
export type ContributionsCollectionPullRequestReviewContributionsByRepositoryArgs = {
  maxRepositories?: InputMaybe<Scalars['Int']>;
};


/** A contributions collection aggregates contributions such as opened issues and commits created by a user. */
export type ContributionsCollectionRepositoryContributionsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  excludeFirst?: InputMaybe<Scalars['Boolean']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ContributionOrder>;
};


/** A contributions collection aggregates contributions such as opened issues and commits created by a user. */
export type ContributionsCollectionTotalIssueContributionsArgs = {
  excludeFirst?: InputMaybe<Scalars['Boolean']>;
  excludePopular?: InputMaybe<Scalars['Boolean']>;
};


/** A contributions collection aggregates contributions such as opened issues and commits created by a user. */
export type ContributionsCollectionTotalPullRequestContributionsArgs = {
  excludeFirst?: InputMaybe<Scalars['Boolean']>;
  excludePopular?: InputMaybe<Scalars['Boolean']>;
};


/** A contributions collection aggregates contributions such as opened issues and commits created by a user. */
export type ContributionsCollectionTotalRepositoriesWithContributedIssuesArgs = {
  excludeFirst?: InputMaybe<Scalars['Boolean']>;
  excludePopular?: InputMaybe<Scalars['Boolean']>;
};


/** A contributions collection aggregates contributions such as opened issues and commits created by a user. */
export type ContributionsCollectionTotalRepositoriesWithContributedPullRequestsArgs = {
  excludeFirst?: InputMaybe<Scalars['Boolean']>;
  excludePopular?: InputMaybe<Scalars['Boolean']>;
};


/** A contributions collection aggregates contributions such as opened issues and commits created by a user. */
export type ContributionsCollectionTotalRepositoryContributionsArgs = {
  excludeFirst?: InputMaybe<Scalars['Boolean']>;
};

/** Autogenerated input type of ConvertProjectCardNoteToIssue */
export type ConvertProjectCardNoteToIssueInput = {
  /** The body of the newly created issue. */
  body?: InputMaybe<Scalars['String']>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ProjectCard ID to convert. */
  projectCardId: Scalars['ID'];
  /** The ID of the repository to create the issue in. */
  repositoryId: Scalars['ID'];
  /** The title of the newly created issue. Defaults to the card's note text. */
  title?: InputMaybe<Scalars['String']>;
};

/** Autogenerated return type of ConvertProjectCardNoteToIssue */
export type ConvertProjectCardNoteToIssuePayload = {
  __typename?: 'ConvertProjectCardNoteToIssuePayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The updated ProjectCard. */
  projectCard?: Maybe<ProjectCard>;
};

/** Autogenerated input type of ConvertPullRequestToDraft */
export type ConvertPullRequestToDraftInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** ID of the pull request to convert to draft */
  pullRequestId: Scalars['ID'];
};

/** Autogenerated return type of ConvertPullRequestToDraft */
export type ConvertPullRequestToDraftPayload = {
  __typename?: 'ConvertPullRequestToDraftPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The pull request that is now a draft. */
  pullRequest?: Maybe<PullRequest>;
};

/** Represents a 'convert_to_draft' event on a given pull request. */
export type ConvertToDraftEvent = Node & UniformResourceLocatable & {
  __typename?: 'ConvertToDraftEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  id: Scalars['ID'];
  /** PullRequest referenced by event. */
  pullRequest: PullRequest;
  /** The HTTP path for this convert to draft event. */
  resourcePath: Scalars['URI'];
  /** The HTTP URL for this convert to draft event. */
  url: Scalars['URI'];
};

/** Represents a 'converted_note_to_issue' event on a given issue or pull request. */
export type ConvertedNoteToIssueEvent = Node & {
  __typename?: 'ConvertedNoteToIssueEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  id: Scalars['ID'];
};

/** Represents a 'converted_to_discussion' event on a given issue. */
export type ConvertedToDiscussionEvent = Node & {
  __typename?: 'ConvertedToDiscussionEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** The discussion that the issue was converted into. */
  discussion?: Maybe<Discussion>;
  id: Scalars['ID'];
};

/** Autogenerated input type of CopyProjectV2 */
export type CopyProjectV2Input = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** Include draft issues in the new project */
  includeDraftIssues?: InputMaybe<Scalars['Boolean']>;
  /** The owner ID of the new project. */
  ownerId: Scalars['ID'];
  /** The ID of the source Project to copy. */
  projectId: Scalars['ID'];
  /** The title of the project. */
  title: Scalars['String'];
};

/** Autogenerated return type of CopyProjectV2 */
export type CopyProjectV2Payload = {
  __typename?: 'CopyProjectV2Payload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The copied project. */
  projectV2?: Maybe<ProjectV2>;
};

/** Autogenerated input type of CreateAttributionInvitation */
export type CreateAttributionInvitationInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The Node ID of the owner scoping the reattributable data. */
  ownerId: Scalars['ID'];
  /** The Node ID of the account owning the data to reattribute. */
  sourceId: Scalars['ID'];
  /** The Node ID of the account which may claim the data. */
  targetId: Scalars['ID'];
};

/** Autogenerated return type of CreateAttributionInvitation */
export type CreateAttributionInvitationPayload = {
  __typename?: 'CreateAttributionInvitationPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The owner scoping the reattributable data. */
  owner?: Maybe<Organization>;
  /** The account owning the data to reattribute. */
  source?: Maybe<Claimable>;
  /** The account which may claim the data. */
  target?: Maybe<Claimable>;
};

/** Autogenerated input type of CreateBranchProtectionRule */
export type CreateBranchProtectionRuleInput = {
  /** Can this branch be deleted. */
  allowsDeletions?: InputMaybe<Scalars['Boolean']>;
  /** Are force pushes allowed on this branch. */
  allowsForcePushes?: InputMaybe<Scalars['Boolean']>;
  /** Is branch creation a protected operation. */
  blocksCreations?: InputMaybe<Scalars['Boolean']>;
  /** A list of User, Team, or App IDs allowed to bypass force push targeting matching branches. */
  bypassForcePushActorIds?: InputMaybe<Array<Scalars['ID']>>;
  /** A list of User, Team, or App IDs allowed to bypass pull requests targeting matching branches. */
  bypassPullRequestActorIds?: InputMaybe<Array<Scalars['ID']>>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** Will new commits pushed to matching branches dismiss pull request review approvals. */
  dismissesStaleReviews?: InputMaybe<Scalars['Boolean']>;
  /** Can admins overwrite branch protection. */
  isAdminEnforced?: InputMaybe<Scalars['Boolean']>;
  /**
   * Whether users can pull changes from upstream when the branch is locked. Set to
   * `true` to allow fork syncing. Set to `false` to prevent fork syncing.
   */
  lockAllowsFetchAndMerge?: InputMaybe<Scalars['Boolean']>;
  /** Whether to set the branch as read-only. If this is true, users will not be able to push to the branch. */
  lockBranch?: InputMaybe<Scalars['Boolean']>;
  /** The glob-like pattern used to determine matching branches. */
  pattern: Scalars['String'];
  /** A list of User, Team, or App IDs allowed to push to matching branches. */
  pushActorIds?: InputMaybe<Array<Scalars['ID']>>;
  /** The global relay id of the repository in which a new branch protection rule should be created in. */
  repositoryId: Scalars['ID'];
  /** Whether the most recent push must be approved by someone other than the person who pushed it */
  requireLastPushApproval?: InputMaybe<Scalars['Boolean']>;
  /** Number of approving reviews required to update matching branches. */
  requiredApprovingReviewCount?: InputMaybe<Scalars['Int']>;
  /** The list of required deployment environments */
  requiredDeploymentEnvironments?: InputMaybe<Array<Scalars['String']>>;
  /** List of required status check contexts that must pass for commits to be accepted to matching branches. */
  requiredStatusCheckContexts?: InputMaybe<Array<Scalars['String']>>;
  /** The list of required status checks */
  requiredStatusChecks?: InputMaybe<Array<RequiredStatusCheckInput>>;
  /** Are approving reviews required to update matching branches. */
  requiresApprovingReviews?: InputMaybe<Scalars['Boolean']>;
  /** Are reviews from code owners required to update matching branches. */
  requiresCodeOwnerReviews?: InputMaybe<Scalars['Boolean']>;
  /** Are commits required to be signed. */
  requiresCommitSignatures?: InputMaybe<Scalars['Boolean']>;
  /** Are conversations required to be resolved before merging. */
  requiresConversationResolution?: InputMaybe<Scalars['Boolean']>;
  /** Are successful deployments required before merging. */
  requiresDeployments?: InputMaybe<Scalars['Boolean']>;
  /** Are merge commits prohibited from being pushed to this branch. */
  requiresLinearHistory?: InputMaybe<Scalars['Boolean']>;
  /** Are status checks required to update matching branches. */
  requiresStatusChecks?: InputMaybe<Scalars['Boolean']>;
  /** Are branches required to be up to date before merging. */
  requiresStrictStatusChecks?: InputMaybe<Scalars['Boolean']>;
  /** Is pushing to matching branches restricted. */
  restrictsPushes?: InputMaybe<Scalars['Boolean']>;
  /** Is dismissal of pull request reviews restricted. */
  restrictsReviewDismissals?: InputMaybe<Scalars['Boolean']>;
  /** A list of User, Team, or App IDs allowed to dismiss reviews on pull requests targeting matching branches. */
  reviewDismissalActorIds?: InputMaybe<Array<Scalars['ID']>>;
};

/** Autogenerated return type of CreateBranchProtectionRule */
export type CreateBranchProtectionRulePayload = {
  __typename?: 'CreateBranchProtectionRulePayload';
  /** The newly created BranchProtectionRule. */
  branchProtectionRule?: Maybe<BranchProtectionRule>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
};

/** Autogenerated input type of CreateCheckRun */
export type CreateCheckRunInput = {
  /** Possible further actions the integrator can perform, which a user may trigger. */
  actions?: InputMaybe<Array<CheckRunAction>>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The time that the check run finished. */
  completedAt?: InputMaybe<Scalars['DateTime']>;
  /** The final conclusion of the check. */
  conclusion?: InputMaybe<CheckConclusionState>;
  /** The URL of the integrator's site that has the full details of the check. */
  detailsUrl?: InputMaybe<Scalars['URI']>;
  /** A reference for the run on the integrator's system. */
  externalId?: InputMaybe<Scalars['String']>;
  /** The SHA of the head commit. */
  headSha: Scalars['GitObjectID'];
  /** The name of the check. */
  name: Scalars['String'];
  /** Descriptive details about the run. */
  output?: InputMaybe<CheckRunOutput>;
  /** The node ID of the repository. */
  repositoryId: Scalars['ID'];
  /** The time that the check run began. */
  startedAt?: InputMaybe<Scalars['DateTime']>;
  /** The current status. */
  status?: InputMaybe<RequestableCheckStatusState>;
};

/** Autogenerated return type of CreateCheckRun */
export type CreateCheckRunPayload = {
  __typename?: 'CreateCheckRunPayload';
  /** The newly created check run. */
  checkRun?: Maybe<CheckRun>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
};

/** Autogenerated input type of CreateCheckSuite */
export type CreateCheckSuiteInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The SHA of the head commit. */
  headSha: Scalars['GitObjectID'];
  /** The Node ID of the repository. */
  repositoryId: Scalars['ID'];
};

/** Autogenerated return type of CreateCheckSuite */
export type CreateCheckSuitePayload = {
  __typename?: 'CreateCheckSuitePayload';
  /** The newly created check suite. */
  checkSuite?: Maybe<CheckSuite>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
};

/** Autogenerated input type of CreateCommitOnBranch */
export type CreateCommitOnBranchInput = {
  /** The Ref to be updated.  Must be a branch. */
  branch: CommittableBranch;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The git commit oid expected at the head of the branch prior to the commit */
  expectedHeadOid: Scalars['GitObjectID'];
  /** A description of changes to files in this commit. */
  fileChanges?: InputMaybe<FileChanges>;
  /** The commit message the be included with the commit. */
  message: CommitMessage;
};

/** Autogenerated return type of CreateCommitOnBranch */
export type CreateCommitOnBranchPayload = {
  __typename?: 'CreateCommitOnBranchPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The new commit. */
  commit?: Maybe<Commit>;
  /** The ref which has been updated to point to the new commit. */
  ref?: Maybe<Ref>;
};

/** Autogenerated input type of CreateDiscussion */
export type CreateDiscussionInput = {
  /** The body of the discussion. */
  body: Scalars['String'];
  /** The id of the discussion category to associate with this discussion. */
  categoryId: Scalars['ID'];
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The id of the repository on which to create the discussion. */
  repositoryId: Scalars['ID'];
  /** The title of the discussion. */
  title: Scalars['String'];
};

/** Autogenerated return type of CreateDiscussion */
export type CreateDiscussionPayload = {
  __typename?: 'CreateDiscussionPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The discussion that was just created. */
  discussion?: Maybe<Discussion>;
};

/** Autogenerated input type of CreateEnterpriseOrganization */
export type CreateEnterpriseOrganizationInput = {
  /** The logins for the administrators of the new organization. */
  adminLogins: Array<Scalars['String']>;
  /** The email used for sending billing receipts. */
  billingEmail: Scalars['String'];
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the enterprise owning the new organization. */
  enterpriseId: Scalars['ID'];
  /** The login of the new organization. */
  login: Scalars['String'];
  /** The profile name of the new organization. */
  profileName: Scalars['String'];
};

/** Autogenerated return type of CreateEnterpriseOrganization */
export type CreateEnterpriseOrganizationPayload = {
  __typename?: 'CreateEnterpriseOrganizationPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The enterprise that owns the created organization. */
  enterprise?: Maybe<Enterprise>;
  /** The organization that was created. */
  organization?: Maybe<Organization>;
};

/** Autogenerated input type of CreateEnvironment */
export type CreateEnvironmentInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The name of the environment. */
  name: Scalars['String'];
  /** The node ID of the repository. */
  repositoryId: Scalars['ID'];
};

/** Autogenerated return type of CreateEnvironment */
export type CreateEnvironmentPayload = {
  __typename?: 'CreateEnvironmentPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The new or existing environment. */
  environment?: Maybe<Environment>;
};

/** Autogenerated input type of CreateIpAllowListEntry */
export type CreateIpAllowListEntryInput = {
  /** An IP address or range of addresses in CIDR notation. */
  allowListValue: Scalars['String'];
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** Whether the IP allow list entry is active when an IP allow list is enabled. */
  isActive: Scalars['Boolean'];
  /** An optional name for the IP allow list entry. */
  name?: InputMaybe<Scalars['String']>;
  /** The ID of the owner for which to create the new IP allow list entry. */
  ownerId: Scalars['ID'];
};

/** Autogenerated return type of CreateIpAllowListEntry */
export type CreateIpAllowListEntryPayload = {
  __typename?: 'CreateIpAllowListEntryPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The IP allow list entry that was created. */
  ipAllowListEntry?: Maybe<IpAllowListEntry>;
};

/** Autogenerated input type of CreateIssue */
export type CreateIssueInput = {
  /** The Node ID for the user assignee for this issue. */
  assigneeIds?: InputMaybe<Array<Scalars['ID']>>;
  /** The body for the issue description. */
  body?: InputMaybe<Scalars['String']>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The name of an issue template in the repository, assigns labels and assignees from the template to the issue */
  issueTemplate?: InputMaybe<Scalars['String']>;
  /** An array of Node IDs of labels for this issue. */
  labelIds?: InputMaybe<Array<Scalars['ID']>>;
  /** The Node ID of the milestone for this issue. */
  milestoneId?: InputMaybe<Scalars['ID']>;
  /** An array of Node IDs for projects associated with this issue. */
  projectIds?: InputMaybe<Array<Scalars['ID']>>;
  /** The Node ID of the repository. */
  repositoryId: Scalars['ID'];
  /** The title for the issue. */
  title: Scalars['String'];
};

/** Autogenerated return type of CreateIssue */
export type CreateIssuePayload = {
  __typename?: 'CreateIssuePayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The new issue. */
  issue?: Maybe<Issue>;
};

/** Autogenerated input type of CreateLinkedBranch */
export type CreateLinkedBranchInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** ID of the issue to link to. */
  issueId: Scalars['ID'];
  /** The name of the new branch. Defaults to issue number and title. */
  name?: InputMaybe<Scalars['String']>;
  /** The commit SHA to base the new branch on. */
  oid: Scalars['GitObjectID'];
  /** ID of the repository to create the branch in. Defaults to the issue repository. */
  repositoryId?: InputMaybe<Scalars['ID']>;
};

/** Autogenerated return type of CreateLinkedBranch */
export type CreateLinkedBranchPayload = {
  __typename?: 'CreateLinkedBranchPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The new branch issue reference. */
  linkedBranch?: Maybe<LinkedBranch>;
};

/** Autogenerated input type of CreateMigrationSource */
export type CreateMigrationSourceInput = {
  /** The migration source access token. */
  accessToken?: InputMaybe<Scalars['String']>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The GitHub personal access token of the user importing to the target repository. */
  githubPat?: InputMaybe<Scalars['String']>;
  /** The migration source name. */
  name: Scalars['String'];
  /** The ID of the organization that will own the migration source. */
  ownerId: Scalars['ID'];
  /** The migration source type. */
  type: MigrationSourceType;
  /** The migration source URL, for example `https://github.com` or `https://monalisa.ghe.com`. */
  url?: InputMaybe<Scalars['String']>;
};

/** Autogenerated return type of CreateMigrationSource */
export type CreateMigrationSourcePayload = {
  __typename?: 'CreateMigrationSourcePayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The created migration source. */
  migrationSource?: Maybe<MigrationSource>;
};

/** Autogenerated input type of CreateProject */
export type CreateProjectInput = {
  /** The description of project. */
  body?: InputMaybe<Scalars['String']>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The name of project. */
  name: Scalars['String'];
  /** The owner ID to create the project under. */
  ownerId: Scalars['ID'];
  /** A list of repository IDs to create as linked repositories for the project */
  repositoryIds?: InputMaybe<Array<Scalars['ID']>>;
  /** The name of the GitHub-provided template. */
  template?: InputMaybe<ProjectTemplate>;
};

/** Autogenerated return type of CreateProject */
export type CreateProjectPayload = {
  __typename?: 'CreateProjectPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The new project. */
  project?: Maybe<Project>;
};

/** Autogenerated input type of CreateProjectV2Field */
export type CreateProjectV2FieldInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The data type of the field. */
  dataType: ProjectV2CustomFieldType;
  /** The name of the field. */
  name: Scalars['String'];
  /** The ID of the Project to create the field in. */
  projectId: Scalars['ID'];
  /** Options for a single select field. At least one value is required if data_type is SINGLE_SELECT */
  singleSelectOptions?: InputMaybe<Array<ProjectV2SingleSelectFieldOptionInput>>;
};

/** Autogenerated return type of CreateProjectV2Field */
export type CreateProjectV2FieldPayload = {
  __typename?: 'CreateProjectV2FieldPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The new field. */
  projectV2Field?: Maybe<ProjectV2FieldConfiguration>;
};

/** Autogenerated input type of CreateProjectV2 */
export type CreateProjectV2Input = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The owner ID to create the project under. */
  ownerId: Scalars['ID'];
  /** The repository to link the project to. */
  repositoryId?: InputMaybe<Scalars['ID']>;
  /** The team to link the project to. The team will be granted read permissions. */
  teamId?: InputMaybe<Scalars['ID']>;
  /** The title of the project. */
  title: Scalars['String'];
};

/** Autogenerated return type of CreateProjectV2 */
export type CreateProjectV2Payload = {
  __typename?: 'CreateProjectV2Payload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The new project. */
  projectV2?: Maybe<ProjectV2>;
};

/** Autogenerated input type of CreatePullRequest */
export type CreatePullRequestInput = {
  /**
   * The name of the branch you want your changes pulled into. This should be an existing branch
   * on the current repository. You cannot update the base branch on a pull request to point
   * to another repository.
   */
  baseRefName: Scalars['String'];
  /** The contents of the pull request. */
  body?: InputMaybe<Scalars['String']>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** Indicates whether this pull request should be a draft. */
  draft?: InputMaybe<Scalars['Boolean']>;
  /**
   * The name of the branch where your changes are implemented. For cross-repository pull requests
   * in the same network, namespace `head_ref_name` with a user like this: `username:branch`.
   */
  headRefName: Scalars['String'];
  /** The Node ID of the head repository. */
  headRepositoryId?: InputMaybe<Scalars['ID']>;
  /** Indicates whether maintainers can modify the pull request. */
  maintainerCanModify?: InputMaybe<Scalars['Boolean']>;
  /** The Node ID of the repository. */
  repositoryId: Scalars['ID'];
  /** The title of the pull request. */
  title: Scalars['String'];
};

/** Autogenerated return type of CreatePullRequest */
export type CreatePullRequestPayload = {
  __typename?: 'CreatePullRequestPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The new pull request. */
  pullRequest?: Maybe<PullRequest>;
};

/** Autogenerated input type of CreateRef */
export type CreateRefInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The fully qualified name of the new Ref (ie: `refs/heads/my_new_branch`). */
  name: Scalars['String'];
  /** The GitObjectID that the new Ref shall target. Must point to a commit. */
  oid: Scalars['GitObjectID'];
  /** The Node ID of the Repository to create the Ref in. */
  repositoryId: Scalars['ID'];
};

/** Autogenerated return type of CreateRef */
export type CreateRefPayload = {
  __typename?: 'CreateRefPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The newly created ref. */
  ref?: Maybe<Ref>;
};

/** Autogenerated input type of CreateRepository */
export type CreateRepositoryInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** A short description of the new repository. */
  description?: InputMaybe<Scalars['String']>;
  /** Indicates if the repository should have the issues feature enabled. */
  hasIssuesEnabled?: InputMaybe<Scalars['Boolean']>;
  /** Indicates if the repository should have the wiki feature enabled. */
  hasWikiEnabled?: InputMaybe<Scalars['Boolean']>;
  /** The URL for a web page about this repository. */
  homepageUrl?: InputMaybe<Scalars['URI']>;
  /** The name of the new repository. */
  name: Scalars['String'];
  /** The ID of the owner for the new repository. */
  ownerId?: InputMaybe<Scalars['ID']>;
  /**
   * When an organization is specified as the owner, this ID identifies the team
   * that should be granted access to the new repository.
   */
  teamId?: InputMaybe<Scalars['ID']>;
  /**
   * Whether this repository should be marked as a template such that anyone who
   * can access it can create new repositories with the same files and directory structure.
   */
  template?: InputMaybe<Scalars['Boolean']>;
  /** Indicates the repository's visibility level. */
  visibility: RepositoryVisibility;
};

/** Autogenerated return type of CreateRepository */
export type CreateRepositoryPayload = {
  __typename?: 'CreateRepositoryPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The new repository. */
  repository?: Maybe<Repository>;
};

/** Autogenerated input type of CreateSponsorsListing */
export type CreateSponsorsListingInput = {
  /**
   * The country or region where the sponsorable's bank account is located.
   * Required if fiscalHostLogin is not specified, ignored when fiscalHostLogin is specified.
   */
  billingCountryOrRegionCode?: InputMaybe<SponsorsCountryOrRegionCode>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /**
   * The email address we should use to contact you about the GitHub Sponsors
   * profile being created. This will not be shared publicly. Must be a verified
   * email address already on your GitHub account. Only relevant when the
   * sponsorable is yourself. Defaults to your primary email address on file if omitted.
   */
  contactEmail?: InputMaybe<Scalars['String']>;
  /**
   * The username of the supported fiscal host's GitHub organization, if you want
   * to receive sponsorship payouts through a fiscal host rather than directly to a
   * bank account. For example, 'Open-Source-Collective' for Open Source Collective
   * or 'numfocus' for numFOCUS. Case insensitive. See https://docs.github.com/sponsors/receiving-sponsorships-through-github-sponsors/using-a-fiscal-host-to-receive-github-sponsors-payouts
   * for more information.
   */
  fiscalHostLogin?: InputMaybe<Scalars['String']>;
  /**
   * The URL for your profile page on the fiscal host's website, e.g.,
   * https://opencollective.com/babel or https://numfocus.org/project/bokeh.
   * Required if fiscalHostLogin is specified.
   */
  fiscallyHostedProjectProfileUrl?: InputMaybe<Scalars['String']>;
  /**
   * Provide an introduction to serve as the main focus that appears on your GitHub
   * Sponsors profile. It's a great opportunity to help potential sponsors learn
   * more about you, your work, and why their sponsorship is important to you.
   * GitHub-flavored Markdown is supported.
   */
  fullDescription?: InputMaybe<Scalars['String']>;
  /**
   * The country or region where the sponsorable resides. This is for tax purposes.
   * Required if the sponsorable is yourself, ignored when sponsorableLogin
   * specifies an organization.
   */
  residenceCountryOrRegionCode?: InputMaybe<SponsorsCountryOrRegionCode>;
  /**
   * The username of the organization to create a GitHub Sponsors profile for, if
   * desired. Defaults to creating a GitHub Sponsors profile for the authenticated
   * user if omitted.
   */
  sponsorableLogin?: InputMaybe<Scalars['String']>;
};

/** Autogenerated return type of CreateSponsorsListing */
export type CreateSponsorsListingPayload = {
  __typename?: 'CreateSponsorsListingPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The new GitHub Sponsors profile. */
  sponsorsListing?: Maybe<SponsorsListing>;
};

/** Autogenerated input type of CreateSponsorsTier */
export type CreateSponsorsTierInput = {
  /** The value of the new tier in US dollars. Valid values: 1-12000. */
  amount: Scalars['Int'];
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** A description of what this tier is, what perks sponsors might receive, what a sponsorship at this tier means for you, etc. */
  description: Scalars['String'];
  /** Whether sponsorships using this tier should happen monthly/yearly or just once. */
  isRecurring?: InputMaybe<Scalars['Boolean']>;
  /**
   * Whether to make the tier available immediately for sponsors to choose.
   * Defaults to creating a draft tier that will not be publicly visible.
   */
  publish?: InputMaybe<Scalars['Boolean']>;
  /**
   * Optional ID of the private repository that sponsors at this tier should gain
   * read-only access to. Must be owned by an organization.
   */
  repositoryId?: InputMaybe<Scalars['ID']>;
  /**
   * Optional name of the private repository that sponsors at this tier should gain
   * read-only access to. Must be owned by an organization. Necessary if
   * repositoryOwnerLogin is given. Will be ignored if repositoryId is given.
   */
  repositoryName?: InputMaybe<Scalars['String']>;
  /**
   * Optional login of the organization owner of the private repository that
   * sponsors at this tier should gain read-only access to. Necessary if
   * repositoryName is given. Will be ignored if repositoryId is given.
   */
  repositoryOwnerLogin?: InputMaybe<Scalars['String']>;
  /**
   * The ID of the user or organization who owns the GitHub Sponsors profile.
   * Defaults to the current user if omitted and sponsorableLogin is not given.
   */
  sponsorableId?: InputMaybe<Scalars['ID']>;
  /**
   * The username of the user or organization who owns the GitHub Sponsors profile.
   * Defaults to the current user if omitted and sponsorableId is not given.
   */
  sponsorableLogin?: InputMaybe<Scalars['String']>;
  /** Optional message new sponsors at this tier will receive. */
  welcomeMessage?: InputMaybe<Scalars['String']>;
};

/** Autogenerated return type of CreateSponsorsTier */
export type CreateSponsorsTierPayload = {
  __typename?: 'CreateSponsorsTierPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The new tier. */
  sponsorsTier?: Maybe<SponsorsTier>;
};

/** Autogenerated input type of CreateSponsorship */
export type CreateSponsorshipInput = {
  /** The amount to pay to the sponsorable in US dollars. Required if a tierId is not specified. Valid values: 1-12000. */
  amount?: InputMaybe<Scalars['Int']>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** Whether the sponsorship should happen monthly/yearly or just this one time. Required if a tierId is not specified. */
  isRecurring?: InputMaybe<Scalars['Boolean']>;
  /**
   * Specify whether others should be able to see that the sponsor is sponsoring
   * the sponsorable. Public visibility still does not reveal which tier is used.
   */
  privacyLevel?: InputMaybe<SponsorshipPrivacy>;
  /** Whether the sponsor should receive email updates from the sponsorable. */
  receiveEmails?: InputMaybe<Scalars['Boolean']>;
  /**
   * The ID of the user or organization who is acting as the sponsor, paying for
   * the sponsorship. Required if sponsorLogin is not given.
   */
  sponsorId?: InputMaybe<Scalars['ID']>;
  /**
   * The username of the user or organization who is acting as the sponsor, paying
   * for the sponsorship. Required if sponsorId is not given.
   */
  sponsorLogin?: InputMaybe<Scalars['String']>;
  /** The ID of the user or organization who is receiving the sponsorship. Required if sponsorableLogin is not given. */
  sponsorableId?: InputMaybe<Scalars['ID']>;
  /** The username of the user or organization who is receiving the sponsorship. Required if sponsorableId is not given. */
  sponsorableLogin?: InputMaybe<Scalars['String']>;
  /** The ID of one of sponsorable's existing tiers to sponsor at. Required if amount is not specified. */
  tierId?: InputMaybe<Scalars['ID']>;
};

/** Autogenerated return type of CreateSponsorship */
export type CreateSponsorshipPayload = {
  __typename?: 'CreateSponsorshipPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The sponsorship that was started. */
  sponsorship?: Maybe<Sponsorship>;
};

/** Autogenerated input type of CreateTeamDiscussionComment */
export type CreateTeamDiscussionCommentInput = {
  /** The content of the comment. */
  body: Scalars['String'];
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the discussion to which the comment belongs. */
  discussionId: Scalars['ID'];
};

/** Autogenerated return type of CreateTeamDiscussionComment */
export type CreateTeamDiscussionCommentPayload = {
  __typename?: 'CreateTeamDiscussionCommentPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The new comment. */
  teamDiscussionComment?: Maybe<TeamDiscussionComment>;
};

/** Autogenerated input type of CreateTeamDiscussion */
export type CreateTeamDiscussionInput = {
  /** The content of the discussion. */
  body: Scalars['String'];
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /**
   * If true, restricts the visibility of this discussion to team members and
   * organization admins. If false or not specified, allows any organization member
   * to view this discussion.
   */
  private?: InputMaybe<Scalars['Boolean']>;
  /** The ID of the team to which the discussion belongs. */
  teamId: Scalars['ID'];
  /** The title of the discussion. */
  title: Scalars['String'];
};

/** Autogenerated return type of CreateTeamDiscussion */
export type CreateTeamDiscussionPayload = {
  __typename?: 'CreateTeamDiscussionPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The new discussion. */
  teamDiscussion?: Maybe<TeamDiscussion>;
};

/** Represents the contribution a user made by committing to a repository. */
export type CreatedCommitContribution = Contribution & {
  __typename?: 'CreatedCommitContribution';
  /** How many commits were made on this day to this repository by the user. */
  commitCount: Scalars['Int'];
  /**
   * Whether this contribution is associated with a record you do not have access to. For
   * example, your own 'first issue' contribution may have been made on a repository you can no
   * longer access.
   */
  isRestricted: Scalars['Boolean'];
  /** When this contribution was made. */
  occurredAt: Scalars['DateTime'];
  /** The repository the user made a commit in. */
  repository: Repository;
  /** The HTTP path for this contribution. */
  resourcePath: Scalars['URI'];
  /** The HTTP URL for this contribution. */
  url: Scalars['URI'];
  /** The user who made this contribution. */
  user: User;
};

/** The connection type for CreatedCommitContribution. */
export type CreatedCommitContributionConnection = {
  __typename?: 'CreatedCommitContributionConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<CreatedCommitContributionEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<CreatedCommitContribution>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of commits across days and repositories in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type CreatedCommitContributionEdge = {
  __typename?: 'CreatedCommitContributionEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<CreatedCommitContribution>;
};

/** Represents the contribution a user made on GitHub by opening an issue. */
export type CreatedIssueContribution = Contribution & {
  __typename?: 'CreatedIssueContribution';
  /**
   * Whether this contribution is associated with a record you do not have access to. For
   * example, your own 'first issue' contribution may have been made on a repository you can no
   * longer access.
   */
  isRestricted: Scalars['Boolean'];
  /** The issue that was opened. */
  issue: Issue;
  /** When this contribution was made. */
  occurredAt: Scalars['DateTime'];
  /** The HTTP path for this contribution. */
  resourcePath: Scalars['URI'];
  /** The HTTP URL for this contribution. */
  url: Scalars['URI'];
  /** The user who made this contribution. */
  user: User;
};

/** The connection type for CreatedIssueContribution. */
export type CreatedIssueContributionConnection = {
  __typename?: 'CreatedIssueContributionConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<CreatedIssueContributionEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<CreatedIssueContribution>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type CreatedIssueContributionEdge = {
  __typename?: 'CreatedIssueContributionEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<CreatedIssueContribution>;
};

/** Represents either a issue the viewer can access or a restricted contribution. */
export type CreatedIssueOrRestrictedContribution = CreatedIssueContribution | RestrictedContribution;

/** Represents the contribution a user made on GitHub by opening a pull request. */
export type CreatedPullRequestContribution = Contribution & {
  __typename?: 'CreatedPullRequestContribution';
  /**
   * Whether this contribution is associated with a record you do not have access to. For
   * example, your own 'first issue' contribution may have been made on a repository you can no
   * longer access.
   */
  isRestricted: Scalars['Boolean'];
  /** When this contribution was made. */
  occurredAt: Scalars['DateTime'];
  /** The pull request that was opened. */
  pullRequest: PullRequest;
  /** The HTTP path for this contribution. */
  resourcePath: Scalars['URI'];
  /** The HTTP URL for this contribution. */
  url: Scalars['URI'];
  /** The user who made this contribution. */
  user: User;
};

/** The connection type for CreatedPullRequestContribution. */
export type CreatedPullRequestContributionConnection = {
  __typename?: 'CreatedPullRequestContributionConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<CreatedPullRequestContributionEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<CreatedPullRequestContribution>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type CreatedPullRequestContributionEdge = {
  __typename?: 'CreatedPullRequestContributionEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<CreatedPullRequestContribution>;
};

/** Represents either a pull request the viewer can access or a restricted contribution. */
export type CreatedPullRequestOrRestrictedContribution = CreatedPullRequestContribution | RestrictedContribution;

/** Represents the contribution a user made by leaving a review on a pull request. */
export type CreatedPullRequestReviewContribution = Contribution & {
  __typename?: 'CreatedPullRequestReviewContribution';
  /**
   * Whether this contribution is associated with a record you do not have access to. For
   * example, your own 'first issue' contribution may have been made on a repository you can no
   * longer access.
   */
  isRestricted: Scalars['Boolean'];
  /** When this contribution was made. */
  occurredAt: Scalars['DateTime'];
  /** The pull request the user reviewed. */
  pullRequest: PullRequest;
  /** The review the user left on the pull request. */
  pullRequestReview: PullRequestReview;
  /** The repository containing the pull request that the user reviewed. */
  repository: Repository;
  /** The HTTP path for this contribution. */
  resourcePath: Scalars['URI'];
  /** The HTTP URL for this contribution. */
  url: Scalars['URI'];
  /** The user who made this contribution. */
  user: User;
};

/** The connection type for CreatedPullRequestReviewContribution. */
export type CreatedPullRequestReviewContributionConnection = {
  __typename?: 'CreatedPullRequestReviewContributionConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<CreatedPullRequestReviewContributionEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<CreatedPullRequestReviewContribution>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type CreatedPullRequestReviewContributionEdge = {
  __typename?: 'CreatedPullRequestReviewContributionEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<CreatedPullRequestReviewContribution>;
};

/** Represents the contribution a user made on GitHub by creating a repository. */
export type CreatedRepositoryContribution = Contribution & {
  __typename?: 'CreatedRepositoryContribution';
  /**
   * Whether this contribution is associated with a record you do not have access to. For
   * example, your own 'first issue' contribution may have been made on a repository you can no
   * longer access.
   */
  isRestricted: Scalars['Boolean'];
  /** When this contribution was made. */
  occurredAt: Scalars['DateTime'];
  /** The repository that was created. */
  repository: Repository;
  /** The HTTP path for this contribution. */
  resourcePath: Scalars['URI'];
  /** The HTTP URL for this contribution. */
  url: Scalars['URI'];
  /** The user who made this contribution. */
  user: User;
};

/** The connection type for CreatedRepositoryContribution. */
export type CreatedRepositoryContributionConnection = {
  __typename?: 'CreatedRepositoryContributionConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<CreatedRepositoryContributionEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<CreatedRepositoryContribution>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type CreatedRepositoryContributionEdge = {
  __typename?: 'CreatedRepositoryContributionEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<CreatedRepositoryContribution>;
};

/** Represents either a repository the viewer can access or a restricted contribution. */
export type CreatedRepositoryOrRestrictedContribution = CreatedRepositoryContribution | RestrictedContribution;

/** Represents a mention made by one issue or pull request to another. */
export type CrossReferencedEvent = Node & UniformResourceLocatable & {
  __typename?: 'CrossReferencedEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  id: Scalars['ID'];
  /** Reference originated in a different repository. */
  isCrossRepository: Scalars['Boolean'];
  /** Identifies when the reference was made. */
  referencedAt: Scalars['DateTime'];
  /** The HTTP path for this pull request. */
  resourcePath: Scalars['URI'];
  /** Issue or pull request that made the reference. */
  source: ReferencedSubject;
  /** Issue or pull request to which the reference was made. */
  target: ReferencedSubject;
  /** The HTTP URL for this pull request. */
  url: Scalars['URI'];
  /** Checks if the target will be closed when the source is merged. */
  willCloseTarget: Scalars['Boolean'];
};

/** Autogenerated input type of DeclineTopicSuggestion */
export type DeclineTopicSuggestionInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The name of the suggested topic. */
  name: Scalars['String'];
  /** The reason why the suggested topic is declined. */
  reason: TopicSuggestionDeclineReason;
  /** The Node ID of the repository. */
  repositoryId: Scalars['ID'];
};

/** Autogenerated return type of DeclineTopicSuggestion */
export type DeclineTopicSuggestionPayload = {
  __typename?: 'DeclineTopicSuggestionPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The declined topic. */
  topic?: Maybe<Topic>;
};

/** The possible base permissions for repositories. */
export type DefaultRepositoryPermissionField =
  /** Can read, write, and administrate repos by default */
  | 'ADMIN'
  /** No access */
  | 'NONE'
  /** Can read repos by default */
  | 'READ'
  /** Can read and write repos by default */
  | 'WRITE';

/** Entities that can be deleted. */
export type Deletable = {
  /** Check if the current viewer can delete this object. */
  viewerCanDelete: Scalars['Boolean'];
};

/** Autogenerated input type of DeleteBranchProtectionRule */
export type DeleteBranchProtectionRuleInput = {
  /** The global relay id of the branch protection rule to be deleted. */
  branchProtectionRuleId: Scalars['ID'];
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
};

/** Autogenerated return type of DeleteBranchProtectionRule */
export type DeleteBranchProtectionRulePayload = {
  __typename?: 'DeleteBranchProtectionRulePayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
};

/** Autogenerated input type of DeleteDeployment */
export type DeleteDeploymentInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The Node ID of the deployment to be deleted. */
  id: Scalars['ID'];
};

/** Autogenerated return type of DeleteDeployment */
export type DeleteDeploymentPayload = {
  __typename?: 'DeleteDeploymentPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
};

/** Autogenerated input type of DeleteDiscussionComment */
export type DeleteDiscussionCommentInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The Node id of the discussion comment to delete. */
  id: Scalars['ID'];
};

/** Autogenerated return type of DeleteDiscussionComment */
export type DeleteDiscussionCommentPayload = {
  __typename?: 'DeleteDiscussionCommentPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The discussion comment that was just deleted. */
  comment?: Maybe<DiscussionComment>;
};

/** Autogenerated input type of DeleteDiscussion */
export type DeleteDiscussionInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The id of the discussion to delete. */
  id: Scalars['ID'];
};

/** Autogenerated return type of DeleteDiscussion */
export type DeleteDiscussionPayload = {
  __typename?: 'DeleteDiscussionPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The discussion that was just deleted. */
  discussion?: Maybe<Discussion>;
};

/** Autogenerated input type of DeleteEnvironment */
export type DeleteEnvironmentInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The Node ID of the environment to be deleted. */
  id: Scalars['ID'];
};

/** Autogenerated return type of DeleteEnvironment */
export type DeleteEnvironmentPayload = {
  __typename?: 'DeleteEnvironmentPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
};

/** Autogenerated input type of DeleteIpAllowListEntry */
export type DeleteIpAllowListEntryInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the IP allow list entry to delete. */
  ipAllowListEntryId: Scalars['ID'];
};

/** Autogenerated return type of DeleteIpAllowListEntry */
export type DeleteIpAllowListEntryPayload = {
  __typename?: 'DeleteIpAllowListEntryPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The IP allow list entry that was deleted. */
  ipAllowListEntry?: Maybe<IpAllowListEntry>;
};

/** Autogenerated input type of DeleteIssueComment */
export type DeleteIssueCommentInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the comment to delete. */
  id: Scalars['ID'];
};

/** Autogenerated return type of DeleteIssueComment */
export type DeleteIssueCommentPayload = {
  __typename?: 'DeleteIssueCommentPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
};

/** Autogenerated input type of DeleteIssue */
export type DeleteIssueInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the issue to delete. */
  issueId: Scalars['ID'];
};

/** Autogenerated return type of DeleteIssue */
export type DeleteIssuePayload = {
  __typename?: 'DeleteIssuePayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The repository the issue belonged to */
  repository?: Maybe<Repository>;
};

/** Autogenerated input type of DeleteLinkedBranch */
export type DeleteLinkedBranchInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the linked branch */
  linkedBranchId: Scalars['ID'];
};

/** Autogenerated return type of DeleteLinkedBranch */
export type DeleteLinkedBranchPayload = {
  __typename?: 'DeleteLinkedBranchPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The issue the linked branch was unlinked from. */
  issue?: Maybe<Issue>;
};

/** Autogenerated input type of DeleteProjectCard */
export type DeleteProjectCardInput = {
  /** The id of the card to delete. */
  cardId: Scalars['ID'];
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
};

/** Autogenerated return type of DeleteProjectCard */
export type DeleteProjectCardPayload = {
  __typename?: 'DeleteProjectCardPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The column the deleted card was in. */
  column?: Maybe<ProjectColumn>;
  /** The deleted card ID. */
  deletedCardId?: Maybe<Scalars['ID']>;
};

/** Autogenerated input type of DeleteProjectColumn */
export type DeleteProjectColumnInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The id of the column to delete. */
  columnId: Scalars['ID'];
};

/** Autogenerated return type of DeleteProjectColumn */
export type DeleteProjectColumnPayload = {
  __typename?: 'DeleteProjectColumnPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The deleted column ID. */
  deletedColumnId?: Maybe<Scalars['ID']>;
  /** The project the deleted column was in. */
  project?: Maybe<Project>;
};

/** Autogenerated input type of DeleteProject */
export type DeleteProjectInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The Project ID to update. */
  projectId: Scalars['ID'];
};

/** Autogenerated return type of DeleteProject */
export type DeleteProjectPayload = {
  __typename?: 'DeleteProjectPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The repository or organization the project was removed from. */
  owner?: Maybe<Organization | Repository | User>;
};

/** Autogenerated input type of DeleteProjectV2Field */
export type DeleteProjectV2FieldInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the field to delete. */
  fieldId: Scalars['ID'];
};

/** Autogenerated return type of DeleteProjectV2Field */
export type DeleteProjectV2FieldPayload = {
  __typename?: 'DeleteProjectV2FieldPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The deleted field. */
  projectV2Field?: Maybe<ProjectV2FieldConfiguration>;
};

/** Autogenerated input type of DeleteProjectV2 */
export type DeleteProjectV2Input = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the Project to delete. */
  projectId: Scalars['ID'];
};

/** Autogenerated input type of DeleteProjectV2Item */
export type DeleteProjectV2ItemInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the item to be removed. */
  itemId: Scalars['ID'];
  /** The ID of the Project from which the item should be removed. */
  projectId: Scalars['ID'];
};

/** Autogenerated return type of DeleteProjectV2Item */
export type DeleteProjectV2ItemPayload = {
  __typename?: 'DeleteProjectV2ItemPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The ID of the deleted item. */
  deletedItemId?: Maybe<Scalars['ID']>;
};

/** Autogenerated return type of DeleteProjectV2 */
export type DeleteProjectV2Payload = {
  __typename?: 'DeleteProjectV2Payload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The deleted Project. */
  projectV2?: Maybe<ProjectV2>;
};

/** Autogenerated input type of DeleteProjectV2Workflow */
export type DeleteProjectV2WorkflowInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the workflow to be removed. */
  workflowId: Scalars['ID'];
};

/** Autogenerated return type of DeleteProjectV2Workflow */
export type DeleteProjectV2WorkflowPayload = {
  __typename?: 'DeleteProjectV2WorkflowPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The ID of the deleted workflow. */
  deletedWorkflowId?: Maybe<Scalars['ID']>;
  /** The project the deleted workflow was in. */
  projectV2?: Maybe<ProjectV2>;
};

/** Autogenerated input type of DeletePullRequestReviewComment */
export type DeletePullRequestReviewCommentInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the comment to delete. */
  id: Scalars['ID'];
};

/** Autogenerated return type of DeletePullRequestReviewComment */
export type DeletePullRequestReviewCommentPayload = {
  __typename?: 'DeletePullRequestReviewCommentPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The pull request review the deleted comment belonged to. */
  pullRequestReview?: Maybe<PullRequestReview>;
  /** The deleted pull request review comment. */
  pullRequestReviewComment?: Maybe<PullRequestReviewComment>;
};

/** Autogenerated input type of DeletePullRequestReview */
export type DeletePullRequestReviewInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The Node ID of the pull request review to delete. */
  pullRequestReviewId: Scalars['ID'];
};

/** Autogenerated return type of DeletePullRequestReview */
export type DeletePullRequestReviewPayload = {
  __typename?: 'DeletePullRequestReviewPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The deleted pull request review. */
  pullRequestReview?: Maybe<PullRequestReview>;
};

/** Autogenerated input type of DeleteRef */
export type DeleteRefInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The Node ID of the Ref to be deleted. */
  refId: Scalars['ID'];
};

/** Autogenerated return type of DeleteRef */
export type DeleteRefPayload = {
  __typename?: 'DeleteRefPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
};

/** Autogenerated input type of DeleteTeamDiscussionComment */
export type DeleteTeamDiscussionCommentInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the comment to delete. */
  id: Scalars['ID'];
};

/** Autogenerated return type of DeleteTeamDiscussionComment */
export type DeleteTeamDiscussionCommentPayload = {
  __typename?: 'DeleteTeamDiscussionCommentPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
};

/** Autogenerated input type of DeleteTeamDiscussion */
export type DeleteTeamDiscussionInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The discussion ID to delete. */
  id: Scalars['ID'];
};

/** Autogenerated return type of DeleteTeamDiscussion */
export type DeleteTeamDiscussionPayload = {
  __typename?: 'DeleteTeamDiscussionPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
};

/** Autogenerated input type of DeleteVerifiableDomain */
export type DeleteVerifiableDomainInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the verifiable domain to delete. */
  id: Scalars['ID'];
};

/** Autogenerated return type of DeleteVerifiableDomain */
export type DeleteVerifiableDomainPayload = {
  __typename?: 'DeleteVerifiableDomainPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The owning account from which the domain was deleted. */
  owner?: Maybe<VerifiableDomainOwner>;
};

/** Represents a 'demilestoned' event on a given issue or pull request. */
export type DemilestonedEvent = Node & {
  __typename?: 'DemilestonedEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  id: Scalars['ID'];
  /** Identifies the milestone title associated with the 'demilestoned' event. */
  milestoneTitle: Scalars['String'];
  /** Object referenced by event. */
  subject: MilestoneItem;
};

/** A Dependabot Update for a dependency in a repository */
export type DependabotUpdate = RepositoryNode & {
  __typename?: 'DependabotUpdate';
  /** The error from a dependency update */
  error?: Maybe<DependabotUpdateError>;
  /** The associated pull request */
  pullRequest?: Maybe<PullRequest>;
  /** The repository associated with this node. */
  repository: Repository;
};

/** An error produced from a Dependabot Update */
export type DependabotUpdateError = {
  __typename?: 'DependabotUpdateError';
  /** The body of the error */
  body: Scalars['String'];
  /** The error code */
  errorType: Scalars['String'];
  /** The title of the error */
  title: Scalars['String'];
};

/** The possible ecosystems of a dependency graph package. */
export type DependencyGraphEcosystem =
  /** GitHub Actions */
  | 'ACTIONS'
  /** PHP packages hosted at packagist.org */
  | 'COMPOSER'
  /** Go modules */
  | 'GO'
  /** Java artifacts hosted at the Maven central repository */
  | 'MAVEN'
  /** JavaScript packages hosted at npmjs.com */
  | 'NPM'
  /** .NET packages hosted at the NuGet Gallery */
  | 'NUGET'
  /** Python packages hosted at PyPI.org */
  | 'PIP'
  /** Dart packages hosted at pub.dev */
  | 'PUB'
  /** Ruby gems hosted at RubyGems.org */
  | 'RUBYGEMS'
  /** Rust crates */
  | 'RUST';

/** A repository deploy key. */
export type DeployKey = Node & {
  __typename?: 'DeployKey';
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  id: Scalars['ID'];
  /** The deploy key. */
  key: Scalars['String'];
  /** Whether or not the deploy key is read only. */
  readOnly: Scalars['Boolean'];
  /** The deploy key title. */
  title: Scalars['String'];
  /** Whether or not the deploy key has been verified. */
  verified: Scalars['Boolean'];
};

/** The connection type for DeployKey. */
export type DeployKeyConnection = {
  __typename?: 'DeployKeyConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<DeployKeyEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<DeployKey>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type DeployKeyEdge = {
  __typename?: 'DeployKeyEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<DeployKey>;
};

/** Represents a 'deployed' event on a given pull request. */
export type DeployedEvent = Node & {
  __typename?: 'DeployedEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** The deployment associated with the 'deployed' event. */
  deployment: Deployment;
  id: Scalars['ID'];
  /** PullRequest referenced by event. */
  pullRequest: PullRequest;
  /** The ref associated with the 'deployed' event. */
  ref?: Maybe<Ref>;
};

/** Represents triggered deployment instance. */
export type Deployment = Node & {
  __typename?: 'Deployment';
  /** Identifies the commit sha of the deployment. */
  commit?: Maybe<Commit>;
  /** Identifies the oid of the deployment commit, even if the commit has been deleted. */
  commitOid: Scalars['String'];
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Identifies the actor who triggered the deployment. */
  creator: Bot | EnterpriseUserAccount | Mannequin | Organization | User;
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** The deployment description. */
  description?: Maybe<Scalars['String']>;
  /** The latest environment to which this deployment was made. */
  environment?: Maybe<Scalars['String']>;
  id: Scalars['ID'];
  /** The latest environment to which this deployment was made. */
  latestEnvironment?: Maybe<Scalars['String']>;
  /** The latest status of this deployment. */
  latestStatus?: Maybe<DeploymentStatus>;
  /** The original environment to which this deployment was made. */
  originalEnvironment?: Maybe<Scalars['String']>;
  /** Extra information that a deployment system might need. */
  payload?: Maybe<Scalars['String']>;
  /** Identifies the Ref of the deployment, if the deployment was created by ref. */
  ref?: Maybe<Ref>;
  /** Identifies the repository associated with the deployment. */
  repository: Repository;
  /** The current state of the deployment. */
  state?: Maybe<DeploymentState>;
  /** A list of statuses associated with the deployment. */
  statuses?: Maybe<DeploymentStatusConnection>;
  /** The deployment task. */
  task?: Maybe<Scalars['String']>;
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
};


/** Represents triggered deployment instance. */
export type DeploymentStatusesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};

/** The connection type for Deployment. */
export type DeploymentConnection = {
  __typename?: 'DeploymentConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<DeploymentEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<Deployment>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type DeploymentEdge = {
  __typename?: 'DeploymentEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<Deployment>;
};

/** Represents a 'deployment_environment_changed' event on a given pull request. */
export type DeploymentEnvironmentChangedEvent = Node & {
  __typename?: 'DeploymentEnvironmentChangedEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** The deployment status that updated the deployment environment. */
  deploymentStatus: DeploymentStatus;
  id: Scalars['ID'];
  /** PullRequest referenced by event. */
  pullRequest: PullRequest;
};

/** Ordering options for deployment connections */
export type DeploymentOrder = {
  /** The ordering direction. */
  direction: OrderDirection;
  /** The field to order deployments by. */
  field: DeploymentOrderField;
};

/** Properties by which deployment connections can be ordered. */
export type DeploymentOrderField =
  /** Order collection by creation time */
  | 'CREATED_AT';

/** A protection rule. */
export type DeploymentProtectionRule = {
  __typename?: 'DeploymentProtectionRule';
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** The teams or users that can review the deployment */
  reviewers: DeploymentReviewerConnection;
  /** The timeout in minutes for this protection rule. */
  timeout: Scalars['Int'];
  /** The type of protection rule. */
  type: DeploymentProtectionRuleType;
};


/** A protection rule. */
export type DeploymentProtectionRuleReviewersArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};

/** The connection type for DeploymentProtectionRule. */
export type DeploymentProtectionRuleConnection = {
  __typename?: 'DeploymentProtectionRuleConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<DeploymentProtectionRuleEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<DeploymentProtectionRule>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type DeploymentProtectionRuleEdge = {
  __typename?: 'DeploymentProtectionRuleEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<DeploymentProtectionRule>;
};

/** The possible protection rule types. */
export type DeploymentProtectionRuleType =
  /** Required reviewers */
  | 'REQUIRED_REVIEWERS'
  /** Wait timer */
  | 'WAIT_TIMER';

/** A request to deploy a workflow run to an environment. */
export type DeploymentRequest = {
  __typename?: 'DeploymentRequest';
  /** Whether or not the current user can approve the deployment */
  currentUserCanApprove: Scalars['Boolean'];
  /** The target environment of the deployment */
  environment: Environment;
  /** The teams or users that can review the deployment */
  reviewers: DeploymentReviewerConnection;
  /** The wait timer in minutes configured in the environment */
  waitTimer: Scalars['Int'];
  /** The wait timer in minutes configured in the environment */
  waitTimerStartedAt?: Maybe<Scalars['DateTime']>;
};


/** A request to deploy a workflow run to an environment. */
export type DeploymentRequestReviewersArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};

/** The connection type for DeploymentRequest. */
export type DeploymentRequestConnection = {
  __typename?: 'DeploymentRequestConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<DeploymentRequestEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<DeploymentRequest>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type DeploymentRequestEdge = {
  __typename?: 'DeploymentRequestEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<DeploymentRequest>;
};

/** A deployment review. */
export type DeploymentReview = Node & {
  __typename?: 'DeploymentReview';
  /** The comment the user left. */
  comment: Scalars['String'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** The environments approved or rejected */
  environments: EnvironmentConnection;
  id: Scalars['ID'];
  /** The decision of the user. */
  state: DeploymentReviewState;
  /** The user that reviewed the deployment. */
  user: User;
};


/** A deployment review. */
export type DeploymentReviewEnvironmentsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};

/** The connection type for DeploymentReview. */
export type DeploymentReviewConnection = {
  __typename?: 'DeploymentReviewConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<DeploymentReviewEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<DeploymentReview>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type DeploymentReviewEdge = {
  __typename?: 'DeploymentReviewEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<DeploymentReview>;
};

/** The possible states for a deployment review. */
export type DeploymentReviewState =
  /** The deployment was approved. */
  | 'APPROVED'
  /** The deployment was rejected. */
  | 'REJECTED';

/** Users and teams. */
export type DeploymentReviewer = Team | User;

/** The connection type for DeploymentReviewer. */
export type DeploymentReviewerConnection = {
  __typename?: 'DeploymentReviewerConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<DeploymentReviewerEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<DeploymentReviewer>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type DeploymentReviewerEdge = {
  __typename?: 'DeploymentReviewerEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<DeploymentReviewer>;
};

/** The possible states in which a deployment can be. */
export type DeploymentState =
  /** The pending deployment was not updated after 30 minutes. */
  | 'ABANDONED'
  /** The deployment is currently active. */
  | 'ACTIVE'
  /** An inactive transient deployment. */
  | 'DESTROYED'
  /** The deployment experienced an error. */
  | 'ERROR'
  /** The deployment has failed. */
  | 'FAILURE'
  /** The deployment is inactive. */
  | 'INACTIVE'
  /** The deployment is in progress. */
  | 'IN_PROGRESS'
  /** The deployment is pending. */
  | 'PENDING'
  /** The deployment has queued */
  | 'QUEUED'
  /** The deployment was successful. */
  | 'SUCCESS'
  /** The deployment is waiting. */
  | 'WAITING';

/** Describes the status of a given deployment attempt. */
export type DeploymentStatus = Node & {
  __typename?: 'DeploymentStatus';
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Identifies the actor who triggered the deployment. */
  creator: Bot | EnterpriseUserAccount | Mannequin | Organization | User;
  /** Identifies the deployment associated with status. */
  deployment: Deployment;
  /** Identifies the description of the deployment. */
  description?: Maybe<Scalars['String']>;
  /** Identifies the environment URL of the deployment. */
  environmentUrl?: Maybe<Scalars['URI']>;
  id: Scalars['ID'];
  /** Identifies the log URL of the deployment. */
  logUrl?: Maybe<Scalars['URI']>;
  /** Identifies the current state of the deployment. */
  state: DeploymentStatusState;
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
};

/** The connection type for DeploymentStatus. */
export type DeploymentStatusConnection = {
  __typename?: 'DeploymentStatusConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<DeploymentStatusEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<DeploymentStatus>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type DeploymentStatusEdge = {
  __typename?: 'DeploymentStatusEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<DeploymentStatus>;
};

/** The possible states for a deployment status. */
export type DeploymentStatusState =
  /** The deployment experienced an error. */
  | 'ERROR'
  /** The deployment has failed. */
  | 'FAILURE'
  /** The deployment is inactive. */
  | 'INACTIVE'
  /** The deployment is in progress. */
  | 'IN_PROGRESS'
  /** The deployment is pending. */
  | 'PENDING'
  /** The deployment is queued */
  | 'QUEUED'
  /** The deployment was successful. */
  | 'SUCCESS'
  /** The deployment is waiting. */
  | 'WAITING';

/** The possible sides of a diff. */
export type DiffSide =
  /** The left side of the diff. */
  | 'LEFT'
  /** The right side of the diff. */
  | 'RIGHT';

/** Autogenerated input type of DisablePullRequestAutoMerge */
export type DisablePullRequestAutoMergeInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** ID of the pull request to disable auto merge on. */
  pullRequestId: Scalars['ID'];
};

/** Autogenerated return type of DisablePullRequestAutoMerge */
export type DisablePullRequestAutoMergePayload = {
  __typename?: 'DisablePullRequestAutoMergePayload';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The pull request auto merge was disabled on. */
  pullRequest?: Maybe<PullRequest>;
};

/** Represents a 'disconnected' event on a given issue or pull request. */
export type DisconnectedEvent = Node & {
  __typename?: 'DisconnectedEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  id: Scalars['ID'];
  /** Reference originated in a different repository. */
  isCrossRepository: Scalars['Boolean'];
  /** Issue or pull request from which the issue was disconnected. */
  source: ReferencedSubject;
  /** Issue or pull request which was disconnected. */
  subject: ReferencedSubject;
};

/** A discussion in a repository. */
export type Discussion = Closable & Comment & Deletable & Labelable & Lockable & Node & Reactable & RepositoryNode & Subscribable & Updatable & Votable & {
  __typename?: 'Discussion';
  /** Reason that the conversation was locked. */
  activeLockReason?: Maybe<LockReason>;
  /** The comment chosen as this discussion's answer, if any. */
  answer?: Maybe<DiscussionComment>;
  /** The time when a user chose this discussion's answer, if answered. */
  answerChosenAt?: Maybe<Scalars['DateTime']>;
  /** The user who chose this discussion's answer, if answered. */
  answerChosenBy?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** The actor who authored the comment. */
  author?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Author's association with the subject of the comment. */
  authorAssociation: CommentAuthorAssociation;
  /** The main text of the discussion post. */
  body: Scalars['String'];
  /** The body rendered to HTML. */
  bodyHTML: Scalars['HTML'];
  /** The body rendered to text. */
  bodyText: Scalars['String'];
  /** The category for this discussion. */
  category: DiscussionCategory;
  /** Indicates if the object is closed (definition of closed may depend on type) */
  closed: Scalars['Boolean'];
  /** Identifies the date and time when the object was closed. */
  closedAt?: Maybe<Scalars['DateTime']>;
  /** The replies to the discussion. */
  comments: DiscussionCommentConnection;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Check if this comment was created via an email reply. */
  createdViaEmail: Scalars['Boolean'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** The actor who edited the comment. */
  editor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  id: Scalars['ID'];
  /** Check if this comment was edited and includes an edit with the creation data */
  includesCreatedEdit: Scalars['Boolean'];
  /** A list of labels associated with the object. */
  labels?: Maybe<LabelConnection>;
  /** The moment the editor made the last edit */
  lastEditedAt?: Maybe<Scalars['DateTime']>;
  /** `true` if the object is locked */
  locked: Scalars['Boolean'];
  /** The number identifying this discussion within the repository. */
  number: Scalars['Int'];
  /** The poll associated with this discussion, if one exists. */
  poll?: Maybe<DiscussionPoll>;
  /** Identifies when the comment was published at. */
  publishedAt?: Maybe<Scalars['DateTime']>;
  /** A list of reactions grouped by content left on the subject. */
  reactionGroups?: Maybe<Array<ReactionGroup>>;
  /** A list of Reactions left on the Issue. */
  reactions: ReactionConnection;
  /** The repository associated with this node. */
  repository: Repository;
  /** The path for this discussion. */
  resourcePath: Scalars['URI'];
  /** Identifies the reason for the discussion's state. */
  stateReason?: Maybe<DiscussionStateReason>;
  /** The title of this discussion. */
  title: Scalars['String'];
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
  /** Number of upvotes that this subject has received. */
  upvoteCount: Scalars['Int'];
  /** The URL for this discussion. */
  url: Scalars['URI'];
  /** A list of edits to this content. */
  userContentEdits?: Maybe<UserContentEditConnection>;
  /** Indicates if the object can be closed by the viewer. */
  viewerCanClose: Scalars['Boolean'];
  /** Check if the current viewer can delete this object. */
  viewerCanDelete: Scalars['Boolean'];
  /** Can user react to this subject */
  viewerCanReact: Scalars['Boolean'];
  /** Indicates if the object can be reopened by the viewer. */
  viewerCanReopen: Scalars['Boolean'];
  /** Check if the viewer is able to change their subscription status for the repository. */
  viewerCanSubscribe: Scalars['Boolean'];
  /** Check if the current viewer can update this object. */
  viewerCanUpdate: Scalars['Boolean'];
  /** Whether or not the current user can add or remove an upvote on this subject. */
  viewerCanUpvote: Scalars['Boolean'];
  /** Did the viewer author this comment. */
  viewerDidAuthor: Scalars['Boolean'];
  /** Whether or not the current user has already upvoted this subject. */
  viewerHasUpvoted: Scalars['Boolean'];
  /** Identifies if the viewer is watching, not watching, or ignoring the subscribable entity. */
  viewerSubscription?: Maybe<SubscriptionState>;
};


/** A discussion in a repository. */
export type DiscussionCommentsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A discussion in a repository. */
export type DiscussionLabelsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<LabelOrder>;
};


/** A discussion in a repository. */
export type DiscussionReactionsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  content?: InputMaybe<ReactionContent>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ReactionOrder>;
};


/** A discussion in a repository. */
export type DiscussionUserContentEditsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};

/** A category for discussions in a repository. */
export type DiscussionCategory = Node & RepositoryNode & {
  __typename?: 'DiscussionCategory';
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** A description of this category. */
  description?: Maybe<Scalars['String']>;
  /** An emoji representing this category. */
  emoji: Scalars['String'];
  /** This category's emoji rendered as HTML. */
  emojiHTML: Scalars['HTML'];
  id: Scalars['ID'];
  /** Whether or not discussions in this category support choosing an answer with the markDiscussionCommentAsAnswer mutation. */
  isAnswerable: Scalars['Boolean'];
  /** The name of this category. */
  name: Scalars['String'];
  /** The repository associated with this node. */
  repository: Repository;
  /** The slug of this category. */
  slug: Scalars['String'];
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
};

/** The connection type for DiscussionCategory. */
export type DiscussionCategoryConnection = {
  __typename?: 'DiscussionCategoryConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<DiscussionCategoryEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<DiscussionCategory>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type DiscussionCategoryEdge = {
  __typename?: 'DiscussionCategoryEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<DiscussionCategory>;
};

/** The possible reasons for closing a discussion. */
export type DiscussionCloseReason =
  /** The discussion is a duplicate of another */
  | 'DUPLICATE'
  /** The discussion is no longer relevant */
  | 'OUTDATED'
  /** The discussion has been resolved */
  | 'RESOLVED';

/** A comment on a discussion. */
export type DiscussionComment = Comment & Deletable & Minimizable & Node & Reactable & Updatable & UpdatableComment & Votable & {
  __typename?: 'DiscussionComment';
  /** The actor who authored the comment. */
  author?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Author's association with the subject of the comment. */
  authorAssociation: CommentAuthorAssociation;
  /** The body as Markdown. */
  body: Scalars['String'];
  /** The body rendered to HTML. */
  bodyHTML: Scalars['HTML'];
  /** The body rendered to text. */
  bodyText: Scalars['String'];
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Check if this comment was created via an email reply. */
  createdViaEmail: Scalars['Boolean'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** The time when this replied-to comment was deleted */
  deletedAt?: Maybe<Scalars['DateTime']>;
  /** The discussion this comment was created in */
  discussion?: Maybe<Discussion>;
  /** The actor who edited the comment. */
  editor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  id: Scalars['ID'];
  /** Check if this comment was edited and includes an edit with the creation data */
  includesCreatedEdit: Scalars['Boolean'];
  /** Has this comment been chosen as the answer of its discussion? */
  isAnswer: Scalars['Boolean'];
  /** Returns whether or not a comment has been minimized. */
  isMinimized: Scalars['Boolean'];
  /** The moment the editor made the last edit */
  lastEditedAt?: Maybe<Scalars['DateTime']>;
  /**
   * Returns why the comment was minimized. One of `abuse`, `off-topic`,
   * `outdated`, `resolved`, `duplicate` and `spam`. Note that the case and
   * formatting of these values differs from the inputs to the `MinimizeComment` mutation.
   */
  minimizedReason?: Maybe<Scalars['String']>;
  /** Identifies when the comment was published at. */
  publishedAt?: Maybe<Scalars['DateTime']>;
  /** A list of reactions grouped by content left on the subject. */
  reactionGroups?: Maybe<Array<ReactionGroup>>;
  /** A list of Reactions left on the Issue. */
  reactions: ReactionConnection;
  /** The threaded replies to this comment. */
  replies: DiscussionCommentConnection;
  /** The discussion comment this comment is a reply to */
  replyTo?: Maybe<DiscussionComment>;
  /** The path for this discussion comment. */
  resourcePath: Scalars['URI'];
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
  /** Number of upvotes that this subject has received. */
  upvoteCount: Scalars['Int'];
  /** The URL for this discussion comment. */
  url: Scalars['URI'];
  /** A list of edits to this content. */
  userContentEdits?: Maybe<UserContentEditConnection>;
  /** Check if the current viewer can delete this object. */
  viewerCanDelete: Scalars['Boolean'];
  /** Can the current user mark this comment as an answer? */
  viewerCanMarkAsAnswer: Scalars['Boolean'];
  /** Check if the current viewer can minimize this object. */
  viewerCanMinimize: Scalars['Boolean'];
  /** Can user react to this subject */
  viewerCanReact: Scalars['Boolean'];
  /** Can the current user unmark this comment as an answer? */
  viewerCanUnmarkAsAnswer: Scalars['Boolean'];
  /** Check if the current viewer can update this object. */
  viewerCanUpdate: Scalars['Boolean'];
  /** Whether or not the current user can add or remove an upvote on this subject. */
  viewerCanUpvote: Scalars['Boolean'];
  /** Reasons why the current viewer can not update this comment. */
  viewerCannotUpdateReasons: Array<CommentCannotUpdateReason>;
  /** Did the viewer author this comment. */
  viewerDidAuthor: Scalars['Boolean'];
  /** Whether or not the current user has already upvoted this subject. */
  viewerHasUpvoted: Scalars['Boolean'];
};


/** A comment on a discussion. */
export type DiscussionCommentReactionsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  content?: InputMaybe<ReactionContent>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ReactionOrder>;
};


/** A comment on a discussion. */
export type DiscussionCommentRepliesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A comment on a discussion. */
export type DiscussionCommentUserContentEditsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};

/** The connection type for DiscussionComment. */
export type DiscussionCommentConnection = {
  __typename?: 'DiscussionCommentConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<DiscussionCommentEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<DiscussionComment>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type DiscussionCommentEdge = {
  __typename?: 'DiscussionCommentEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<DiscussionComment>;
};

/** The connection type for Discussion. */
export type DiscussionConnection = {
  __typename?: 'DiscussionConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<DiscussionEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<Discussion>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type DiscussionEdge = {
  __typename?: 'DiscussionEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<Discussion>;
};

/** Ways in which lists of discussions can be ordered upon return. */
export type DiscussionOrder = {
  /** The direction in which to order discussions by the specified field. */
  direction: OrderDirection;
  /** The field by which to order discussions. */
  field: DiscussionOrderField;
};

/** Properties by which discussion connections can be ordered. */
export type DiscussionOrderField =
  /** Order discussions by creation time. */
  | 'CREATED_AT'
  /** Order discussions by most recent modification time. */
  | 'UPDATED_AT';

/** A poll for a discussion. */
export type DiscussionPoll = Node & {
  __typename?: 'DiscussionPoll';
  /** The discussion that this poll belongs to. */
  discussion?: Maybe<Discussion>;
  id: Scalars['ID'];
  /** The options for this poll. */
  options?: Maybe<DiscussionPollOptionConnection>;
  /** The question that is being asked by this poll. */
  question: Scalars['String'];
  /** The total number of votes that have been cast for this poll. */
  totalVoteCount: Scalars['Int'];
  /** Indicates if the viewer has permission to vote in this poll. */
  viewerCanVote: Scalars['Boolean'];
  /** Indicates if the viewer has voted for any option in this poll. */
  viewerHasVoted: Scalars['Boolean'];
};


/** A poll for a discussion. */
export type DiscussionPollOptionsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<DiscussionPollOptionOrder>;
};

/** An option for a discussion poll. */
export type DiscussionPollOption = Node & {
  __typename?: 'DiscussionPollOption';
  id: Scalars['ID'];
  /** The text for this option. */
  option: Scalars['String'];
  /** The discussion poll that this option belongs to. */
  poll?: Maybe<DiscussionPoll>;
  /** The total number of votes that have been cast for this option. */
  totalVoteCount: Scalars['Int'];
  /** Indicates if the viewer has voted for this option in the poll. */
  viewerHasVoted: Scalars['Boolean'];
};

/** The connection type for DiscussionPollOption. */
export type DiscussionPollOptionConnection = {
  __typename?: 'DiscussionPollOptionConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<DiscussionPollOptionEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<DiscussionPollOption>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type DiscussionPollOptionEdge = {
  __typename?: 'DiscussionPollOptionEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<DiscussionPollOption>;
};

/** Ordering options for discussion poll option connections. */
export type DiscussionPollOptionOrder = {
  /** The ordering direction. */
  direction: OrderDirection;
  /** The field to order poll options by. */
  field: DiscussionPollOptionOrderField;
};

/** Properties by which discussion poll option connections can be ordered. */
export type DiscussionPollOptionOrderField =
  /** Order poll options by the order that the poll author specified when creating the poll. */
  | 'AUTHORED_ORDER'
  /** Order poll options by the number of votes it has. */
  | 'VOTE_COUNT';

/** The possible states of a discussion. */
export type DiscussionState =
  /** A discussion that has been closed */
  | 'CLOSED'
  /** A discussion that is open */
  | 'OPEN';

/** The possible state reasons of a discussion. */
export type DiscussionStateReason =
  /** The discussion is a duplicate of another */
  | 'DUPLICATE'
  /** The discussion is no longer relevant */
  | 'OUTDATED'
  /** The discussion was reopened */
  | 'REOPENED'
  /** The discussion has been resolved */
  | 'RESOLVED';

/** Autogenerated input type of DismissPullRequestReview */
export type DismissPullRequestReviewInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The contents of the pull request review dismissal message. */
  message: Scalars['String'];
  /** The Node ID of the pull request review to modify. */
  pullRequestReviewId: Scalars['ID'];
};

/** Autogenerated return type of DismissPullRequestReview */
export type DismissPullRequestReviewPayload = {
  __typename?: 'DismissPullRequestReviewPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The dismissed pull request review. */
  pullRequestReview?: Maybe<PullRequestReview>;
};

/** The possible reasons that a Dependabot alert was dismissed. */
export type DismissReason =
  /** A fix has already been started */
  | 'FIX_STARTED'
  /** This alert is inaccurate or incorrect */
  | 'INACCURATE'
  /** Vulnerable code is not actually used */
  | 'NOT_USED'
  /** No bandwidth to fix this */
  | 'NO_BANDWIDTH'
  /** Risk is tolerable to this project */
  | 'TOLERABLE_RISK';

/** Autogenerated input type of DismissRepositoryVulnerabilityAlert */
export type DismissRepositoryVulnerabilityAlertInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The reason the Dependabot alert is being dismissed. */
  dismissReason: DismissReason;
  /** The Dependabot alert ID to dismiss. */
  repositoryVulnerabilityAlertId: Scalars['ID'];
};

/** Autogenerated return type of DismissRepositoryVulnerabilityAlert */
export type DismissRepositoryVulnerabilityAlertPayload = {
  __typename?: 'DismissRepositoryVulnerabilityAlertPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The Dependabot alert that was dismissed */
  repositoryVulnerabilityAlert?: Maybe<RepositoryVulnerabilityAlert>;
};

/** A draft issue within a project. */
export type DraftIssue = Node & {
  __typename?: 'DraftIssue';
  /** A list of users to assigned to this draft issue. */
  assignees: UserConnection;
  /** The body of the draft issue. */
  body: Scalars['String'];
  /** The body of the draft issue rendered to HTML. */
  bodyHTML: Scalars['HTML'];
  /** The body of the draft issue rendered to text. */
  bodyText: Scalars['String'];
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** The actor who created this draft issue. */
  creator?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  id: Scalars['ID'];
  /** List of items linked with the draft issue (currently draft issue can be linked to only one item). */
  projectV2Items: ProjectV2ItemConnection;
  /** Projects that link to this draft issue (currently draft issue can be linked to only one project). */
  projectsV2: ProjectV2Connection;
  /** The title of the draft issue */
  title: Scalars['String'];
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
};


/** A draft issue within a project. */
export type DraftIssueAssigneesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A draft issue within a project. */
export type DraftIssueProjectV2ItemsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A draft issue within a project. */
export type DraftIssueProjectsV2Args = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};

/** Specifies a review comment to be left with a Pull Request Review. */
export type DraftPullRequestReviewComment = {
  /** Body of the comment to leave. */
  body: Scalars['String'];
  /** Path to the file being commented on. */
  path: Scalars['String'];
  /** Position in the file to leave a comment on. */
  position: Scalars['Int'];
};

/** Specifies a review comment thread to be left with a Pull Request Review. */
export type DraftPullRequestReviewThread = {
  /** Body of the comment to leave. */
  body: Scalars['String'];
  /** The line of the blob to which the thread refers. The end of the line range for multi-line comments. */
  line: Scalars['Int'];
  /** Path to the file being commented on. */
  path: Scalars['String'];
  /** The side of the diff on which the line resides. For multi-line comments, this is the side for the end of the line range. */
  side?: InputMaybe<DiffSide>;
  /** The first line of the range to which the comment refers. */
  startLine?: InputMaybe<Scalars['Int']>;
  /** The side of the diff on which the start line resides. */
  startSide?: InputMaybe<DiffSide>;
};

/** Autogenerated input type of EnablePullRequestAutoMerge */
export type EnablePullRequestAutoMergeInput = {
  /** The email address to associate with this merge. */
  authorEmail?: InputMaybe<Scalars['String']>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /**
   * Commit body to use for the commit when the PR is mergable; if omitted, a
   * default message will be used. NOTE: when merging with a merge queue any input
   * value for commit message is ignored.
   */
  commitBody?: InputMaybe<Scalars['String']>;
  /**
   * Commit headline to use for the commit when the PR is mergable; if omitted, a
   * default message will be used. NOTE: when merging with a merge queue any input
   * value for commit headline is ignored.
   */
  commitHeadline?: InputMaybe<Scalars['String']>;
  /** The expected head OID of the pull request. */
  expectedHeadOid?: InputMaybe<Scalars['GitObjectID']>;
  /**
   * The merge method to use. If omitted, defaults to `MERGE`. NOTE: when merging
   * with a merge queue any input value for merge method is ignored.
   */
  mergeMethod?: InputMaybe<PullRequestMergeMethod>;
  /** ID of the pull request to enable auto-merge on. */
  pullRequestId: Scalars['ID'];
};

/** Autogenerated return type of EnablePullRequestAutoMerge */
export type EnablePullRequestAutoMergePayload = {
  __typename?: 'EnablePullRequestAutoMergePayload';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The pull request auto-merge was enabled on. */
  pullRequest?: Maybe<PullRequest>;
};

/** An account to manage multiple organizations with consolidated policy and billing. */
export type Enterprise = AnnouncementBanner & Node & {
  __typename?: 'Enterprise';
  /** The text of the announcement */
  announcement?: Maybe<Scalars['String']>;
  /** The expiration date of the announcement, if any */
  announcementExpiresAt?: Maybe<Scalars['DateTime']>;
  /** Whether the announcement can be dismissed by the user */
  announcementUserDismissible?: Maybe<Scalars['Boolean']>;
  /** A URL pointing to the enterprise's public avatar. */
  avatarUrl: Scalars['URI'];
  /** Enterprise billing information visible to enterprise billing managers. */
  billingInfo?: Maybe<EnterpriseBillingInfo>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** The description of the enterprise. */
  description?: Maybe<Scalars['String']>;
  /** The description of the enterprise as HTML. */
  descriptionHTML: Scalars['HTML'];
  id: Scalars['ID'];
  /** The location of the enterprise. */
  location?: Maybe<Scalars['String']>;
  /** A list of users who are members of this enterprise. */
  members: EnterpriseMemberConnection;
  /** The name of the enterprise. */
  name: Scalars['String'];
  /** A list of organizations that belong to this enterprise. */
  organizations: OrganizationConnection;
  /** Enterprise information only visible to enterprise owners. */
  ownerInfo?: Maybe<EnterpriseOwnerInfo>;
  /** The HTTP path for this enterprise. */
  resourcePath: Scalars['URI'];
  /** The URL-friendly identifier for the enterprise. */
  slug: Scalars['String'];
  /** The HTTP URL for this enterprise. */
  url: Scalars['URI'];
  /** Is the current viewer an admin of this enterprise? */
  viewerIsAdmin: Scalars['Boolean'];
  /** The URL of the enterprise website. */
  websiteUrl?: Maybe<Scalars['URI']>;
};


/** An account to manage multiple organizations with consolidated policy and billing. */
export type EnterpriseAvatarUrlArgs = {
  size?: InputMaybe<Scalars['Int']>;
};


/** An account to manage multiple organizations with consolidated policy and billing. */
export type EnterpriseMembersArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  deployment?: InputMaybe<EnterpriseUserDeployment>;
  first?: InputMaybe<Scalars['Int']>;
  hasTwoFactorEnabled?: InputMaybe<Scalars['Boolean']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<EnterpriseMemberOrder>;
  organizationLogins?: InputMaybe<Array<Scalars['String']>>;
  query?: InputMaybe<Scalars['String']>;
  role?: InputMaybe<EnterpriseUserAccountMembershipRole>;
};


/** An account to manage multiple organizations with consolidated policy and billing. */
export type EnterpriseOrganizationsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<OrganizationOrder>;
  query?: InputMaybe<Scalars['String']>;
  viewerOrganizationRole?: InputMaybe<RoleInOrganization>;
};

/** The connection type for User. */
export type EnterpriseAdministratorConnection = {
  __typename?: 'EnterpriseAdministratorConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<EnterpriseAdministratorEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<User>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** A User who is an administrator of an enterprise. */
export type EnterpriseAdministratorEdge = {
  __typename?: 'EnterpriseAdministratorEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<User>;
  /** The role of the administrator. */
  role: EnterpriseAdministratorRole;
};

/** An invitation for a user to become an owner or billing manager of an enterprise. */
export type EnterpriseAdministratorInvitation = Node & {
  __typename?: 'EnterpriseAdministratorInvitation';
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** The email of the person who was invited to the enterprise. */
  email?: Maybe<Scalars['String']>;
  /** The enterprise the invitation is for. */
  enterprise: Enterprise;
  id: Scalars['ID'];
  /** The user who was invited to the enterprise. */
  invitee?: Maybe<User>;
  /** The user who created the invitation. */
  inviter?: Maybe<User>;
  /** The invitee's pending role in the enterprise (owner or billing_manager). */
  role: EnterpriseAdministratorRole;
};

/** The connection type for EnterpriseAdministratorInvitation. */
export type EnterpriseAdministratorInvitationConnection = {
  __typename?: 'EnterpriseAdministratorInvitationConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<EnterpriseAdministratorInvitationEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<EnterpriseAdministratorInvitation>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type EnterpriseAdministratorInvitationEdge = {
  __typename?: 'EnterpriseAdministratorInvitationEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<EnterpriseAdministratorInvitation>;
};

/** Ordering options for enterprise administrator invitation connections */
export type EnterpriseAdministratorInvitationOrder = {
  /** The ordering direction. */
  direction: OrderDirection;
  /** The field to order enterprise administrator invitations by. */
  field: EnterpriseAdministratorInvitationOrderField;
};

/** Properties by which enterprise administrator invitation connections can be ordered. */
export type EnterpriseAdministratorInvitationOrderField =
  /** Order enterprise administrator member invitations by creation time */
  | 'CREATED_AT';

/** The possible administrator roles in an enterprise account. */
export type EnterpriseAdministratorRole =
  /** Represents a billing manager of the enterprise account. */
  | 'BILLING_MANAGER'
  /** Represents an owner of the enterprise account. */
  | 'OWNER';

/** The possible values for the enterprise allow private repository forking policy value. */
export type EnterpriseAllowPrivateRepositoryForkingPolicyValue =
  /** Members can fork a repository to an organization within this enterprise. */
  | 'ENTERPRISE_ORGANIZATIONS'
  /** Members can fork a repository to their enterprise-managed user account or an organization inside this enterprise. */
  | 'ENTERPRISE_ORGANIZATIONS_USER_ACCOUNTS'
  /** Members can fork a repository to their user account or an organization, either inside or outside of this enterprise. */
  | 'EVERYWHERE'
  /** Members can fork a repository only within the same organization (intra-org). */
  | 'SAME_ORGANIZATION'
  /** Members can fork a repository to their user account or within the same organization. */
  | 'SAME_ORGANIZATION_USER_ACCOUNTS'
  /** Members can fork a repository to their user account. */
  | 'USER_ACCOUNTS';

/** Metadata for an audit entry containing enterprise account information. */
export type EnterpriseAuditEntryData = {
  /** The HTTP path for this enterprise. */
  enterpriseResourcePath?: Maybe<Scalars['URI']>;
  /** The slug of the enterprise. */
  enterpriseSlug?: Maybe<Scalars['String']>;
  /** The HTTP URL for this enterprise. */
  enterpriseUrl?: Maybe<Scalars['URI']>;
};

/** Enterprise billing information visible to enterprise billing managers and owners. */
export type EnterpriseBillingInfo = {
  __typename?: 'EnterpriseBillingInfo';
  /** The number of licenseable users/emails across the enterprise. */
  allLicensableUsersCount: Scalars['Int'];
  /** The number of data packs used by all organizations owned by the enterprise. */
  assetPacks: Scalars['Int'];
  /** The bandwidth quota in GB for all organizations owned by the enterprise. */
  bandwidthQuota: Scalars['Float'];
  /** The bandwidth usage in GB for all organizations owned by the enterprise. */
  bandwidthUsage: Scalars['Float'];
  /** The bandwidth usage as a percentage of the bandwidth quota. */
  bandwidthUsagePercentage: Scalars['Int'];
  /** The storage quota in GB for all organizations owned by the enterprise. */
  storageQuota: Scalars['Float'];
  /** The storage usage in GB for all organizations owned by the enterprise. */
  storageUsage: Scalars['Float'];
  /** The storage usage as a percentage of the storage quota. */
  storageUsagePercentage: Scalars['Int'];
  /** The number of available licenses across all owned organizations based on the unique number of billable users. */
  totalAvailableLicenses: Scalars['Int'];
  /** The total number of licenses allocated. */
  totalLicenses: Scalars['Int'];
};

/** The possible values for the enterprise base repository permission setting. */
export type EnterpriseDefaultRepositoryPermissionSettingValue =
  /** Organization members will be able to clone, pull, push, and add new collaborators to all organization repositories. */
  | 'ADMIN'
  /** Organization members will only be able to clone and pull public repositories. */
  | 'NONE'
  /** Organizations in the enterprise choose base repository permissions for their members. */
  | 'NO_POLICY'
  /** Organization members will be able to clone and pull all organization repositories. */
  | 'READ'
  /** Organization members will be able to clone, pull, and push all organization repositories. */
  | 'WRITE';

/** The possible values for an enabled/disabled enterprise setting. */
export type EnterpriseEnabledDisabledSettingValue =
  /** The setting is disabled for organizations in the enterprise. */
  | 'DISABLED'
  /** The setting is enabled for organizations in the enterprise. */
  | 'ENABLED'
  /** There is no policy set for organizations in the enterprise. */
  | 'NO_POLICY';

/** The possible values for an enabled/no policy enterprise setting. */
export type EnterpriseEnabledSettingValue =
  /** The setting is enabled for organizations in the enterprise. */
  | 'ENABLED'
  /** There is no policy set for organizations in the enterprise. */
  | 'NO_POLICY';

/** The connection type for OrganizationInvitation. */
export type EnterpriseFailedInvitationConnection = {
  __typename?: 'EnterpriseFailedInvitationConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<EnterpriseFailedInvitationEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<OrganizationInvitation>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
  /** Identifies the total count of unique users in the connection. */
  totalUniqueUserCount: Scalars['Int'];
};

/** A failed invitation to be a member in an enterprise organization. */
export type EnterpriseFailedInvitationEdge = {
  __typename?: 'EnterpriseFailedInvitationEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<OrganizationInvitation>;
};

/** An identity provider configured to provision identities for an enterprise. */
export type EnterpriseIdentityProvider = Node & {
  __typename?: 'EnterpriseIdentityProvider';
  /** The digest algorithm used to sign SAML requests for the identity provider. */
  digestMethod?: Maybe<SamlDigestAlgorithm>;
  /** The enterprise this identity provider belongs to. */
  enterprise?: Maybe<Enterprise>;
  /** ExternalIdentities provisioned by this identity provider. */
  externalIdentities: ExternalIdentityConnection;
  id: Scalars['ID'];
  /** The x509 certificate used by the identity provider to sign assertions and responses. */
  idpCertificate?: Maybe<Scalars['X509Certificate']>;
  /** The Issuer Entity ID for the SAML identity provider. */
  issuer?: Maybe<Scalars['String']>;
  /** Recovery codes that can be used by admins to access the enterprise if the identity provider is unavailable. */
  recoveryCodes?: Maybe<Array<Scalars['String']>>;
  /** The signature algorithm used to sign SAML requests for the identity provider. */
  signatureMethod?: Maybe<SamlSignatureAlgorithm>;
  /** The URL endpoint for the identity provider's SAML SSO. */
  ssoUrl?: Maybe<Scalars['URI']>;
};


/** An identity provider configured to provision identities for an enterprise. */
export type EnterpriseIdentityProviderExternalIdentitiesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  login?: InputMaybe<Scalars['String']>;
  membersOnly?: InputMaybe<Scalars['Boolean']>;
  userName?: InputMaybe<Scalars['String']>;
};

/** An object that is a member of an enterprise. */
export type EnterpriseMember = EnterpriseUserAccount | User;

/** The connection type for EnterpriseMember. */
export type EnterpriseMemberConnection = {
  __typename?: 'EnterpriseMemberConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<EnterpriseMemberEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<EnterpriseMember>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** A User who is a member of an enterprise through one or more organizations. */
export type EnterpriseMemberEdge = {
  __typename?: 'EnterpriseMemberEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<EnterpriseMember>;
};

/** Ordering options for enterprise member connections. */
export type EnterpriseMemberOrder = {
  /** The ordering direction. */
  direction: OrderDirection;
  /** The field to order enterprise members by. */
  field: EnterpriseMemberOrderField;
};

/** Properties by which enterprise member connections can be ordered. */
export type EnterpriseMemberOrderField =
  /** Order enterprise members by creation time */
  | 'CREATED_AT'
  /** Order enterprise members by login */
  | 'LOGIN';

/** The possible values for the enterprise members can create repositories setting. */
export type EnterpriseMembersCanCreateRepositoriesSettingValue =
  /** Members will be able to create public and private repositories. */
  | 'ALL'
  /** Members will not be able to create public or private repositories. */
  | 'DISABLED'
  /** Organization administrators choose whether to allow members to create repositories. */
  | 'NO_POLICY'
  /** Members will be able to create only private repositories. */
  | 'PRIVATE'
  /** Members will be able to create only public repositories. */
  | 'PUBLIC';

/** The possible values for the members can make purchases setting. */
export type EnterpriseMembersCanMakePurchasesSettingValue =
  /** The setting is disabled for organizations in the enterprise. */
  | 'DISABLED'
  /** The setting is enabled for organizations in the enterprise. */
  | 'ENABLED';

/** The connection type for Organization. */
export type EnterpriseOrganizationMembershipConnection = {
  __typename?: 'EnterpriseOrganizationMembershipConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<EnterpriseOrganizationMembershipEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<Organization>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An enterprise organization that a user is a member of. */
export type EnterpriseOrganizationMembershipEdge = {
  __typename?: 'EnterpriseOrganizationMembershipEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<Organization>;
  /** The role of the user in the enterprise membership. */
  role: EnterpriseUserAccountMembershipRole;
};

/** The connection type for User. */
export type EnterpriseOutsideCollaboratorConnection = {
  __typename?: 'EnterpriseOutsideCollaboratorConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<EnterpriseOutsideCollaboratorEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<User>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** A User who is an outside collaborator of an enterprise through one or more organizations. */
export type EnterpriseOutsideCollaboratorEdge = {
  __typename?: 'EnterpriseOutsideCollaboratorEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<User>;
  /** The enterprise organization repositories this user is a member of. */
  repositories: EnterpriseRepositoryInfoConnection;
};


/** A User who is an outside collaborator of an enterprise through one or more organizations. */
export type EnterpriseOutsideCollaboratorEdgeRepositoriesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<RepositoryOrder>;
};

/** Enterprise information only visible to enterprise owners. */
export type EnterpriseOwnerInfo = {
  __typename?: 'EnterpriseOwnerInfo';
  /** A list of all of the administrators for this enterprise. */
  admins: EnterpriseAdministratorConnection;
  /** A list of users in the enterprise who currently have two-factor authentication disabled. */
  affiliatedUsersWithTwoFactorDisabled: UserConnection;
  /** Whether or not affiliated users with two-factor authentication disabled exist in the enterprise. */
  affiliatedUsersWithTwoFactorDisabledExist: Scalars['Boolean'];
  /** The setting value for whether private repository forking is enabled for repositories in organizations in this enterprise. */
  allowPrivateRepositoryForkingSetting: EnterpriseEnabledDisabledSettingValue;
  /** A list of enterprise organizations configured with the provided private repository forking setting value. */
  allowPrivateRepositoryForkingSettingOrganizations: OrganizationConnection;
  /** The value for the allow private repository forking policy on the enterprise. */
  allowPrivateRepositoryForkingSettingPolicyValue?: Maybe<EnterpriseAllowPrivateRepositoryForkingPolicyValue>;
  /** The setting value for base repository permissions for organizations in this enterprise. */
  defaultRepositoryPermissionSetting: EnterpriseDefaultRepositoryPermissionSettingValue;
  /** A list of enterprise organizations configured with the provided base repository permission. */
  defaultRepositoryPermissionSettingOrganizations: OrganizationConnection;
  /** A list of domains owned by the enterprise. */
  domains: VerifiableDomainConnection;
  /** Enterprise Server installations owned by the enterprise. */
  enterpriseServerInstallations: EnterpriseServerInstallationConnection;
  /** A list of failed invitations in the enterprise. */
  failedInvitations: EnterpriseFailedInvitationConnection;
  /** The setting value for whether the enterprise has an IP allow list enabled. */
  ipAllowListEnabledSetting: IpAllowListEnabledSettingValue;
  /** The IP addresses that are allowed to access resources owned by the enterprise. */
  ipAllowListEntries: IpAllowListEntryConnection;
  /** The setting value for whether the enterprise has IP allow list configuration for installed GitHub Apps enabled. */
  ipAllowListForInstalledAppsEnabledSetting: IpAllowListForInstalledAppsEnabledSettingValue;
  /** Whether or not the base repository permission is currently being updated. */
  isUpdatingDefaultRepositoryPermission: Scalars['Boolean'];
  /** Whether the two-factor authentication requirement is currently being enforced. */
  isUpdatingTwoFactorRequirement: Scalars['Boolean'];
  /**
   * The setting value for whether organization members with admin permissions on a
   * repository can change repository visibility.
   */
  membersCanChangeRepositoryVisibilitySetting: EnterpriseEnabledDisabledSettingValue;
  /** A list of enterprise organizations configured with the provided can change repository visibility setting value. */
  membersCanChangeRepositoryVisibilitySettingOrganizations: OrganizationConnection;
  /** The setting value for whether members of organizations in the enterprise can create internal repositories. */
  membersCanCreateInternalRepositoriesSetting?: Maybe<Scalars['Boolean']>;
  /** The setting value for whether members of organizations in the enterprise can create private repositories. */
  membersCanCreatePrivateRepositoriesSetting?: Maybe<Scalars['Boolean']>;
  /** The setting value for whether members of organizations in the enterprise can create public repositories. */
  membersCanCreatePublicRepositoriesSetting?: Maybe<Scalars['Boolean']>;
  /** The setting value for whether members of organizations in the enterprise can create repositories. */
  membersCanCreateRepositoriesSetting?: Maybe<EnterpriseMembersCanCreateRepositoriesSettingValue>;
  /** A list of enterprise organizations configured with the provided repository creation setting value. */
  membersCanCreateRepositoriesSettingOrganizations: OrganizationConnection;
  /** The setting value for whether members with admin permissions for repositories can delete issues. */
  membersCanDeleteIssuesSetting: EnterpriseEnabledDisabledSettingValue;
  /** A list of enterprise organizations configured with the provided members can delete issues setting value. */
  membersCanDeleteIssuesSettingOrganizations: OrganizationConnection;
  /** The setting value for whether members with admin permissions for repositories can delete or transfer repositories. */
  membersCanDeleteRepositoriesSetting: EnterpriseEnabledDisabledSettingValue;
  /** A list of enterprise organizations configured with the provided members can delete repositories setting value. */
  membersCanDeleteRepositoriesSettingOrganizations: OrganizationConnection;
  /** The setting value for whether members of organizations in the enterprise can invite outside collaborators. */
  membersCanInviteCollaboratorsSetting: EnterpriseEnabledDisabledSettingValue;
  /** A list of enterprise organizations configured with the provided members can invite collaborators setting value. */
  membersCanInviteCollaboratorsSettingOrganizations: OrganizationConnection;
  /** Indicates whether members of this enterprise's organizations can purchase additional services for those organizations. */
  membersCanMakePurchasesSetting: EnterpriseMembersCanMakePurchasesSettingValue;
  /** The setting value for whether members with admin permissions for repositories can update protected branches. */
  membersCanUpdateProtectedBranchesSetting: EnterpriseEnabledDisabledSettingValue;
  /** A list of enterprise organizations configured with the provided members can update protected branches setting value. */
  membersCanUpdateProtectedBranchesSettingOrganizations: OrganizationConnection;
  /** The setting value for whether members can view dependency insights. */
  membersCanViewDependencyInsightsSetting: EnterpriseEnabledDisabledSettingValue;
  /** A list of enterprise organizations configured with the provided members can view dependency insights setting value. */
  membersCanViewDependencyInsightsSettingOrganizations: OrganizationConnection;
  /** Indicates if email notification delivery for this enterprise is restricted to verified or approved domains. */
  notificationDeliveryRestrictionEnabledSetting: NotificationRestrictionSettingValue;
  /** The OIDC Identity Provider for the enterprise. */
  oidcProvider?: Maybe<OidcProvider>;
  /** The setting value for whether organization projects are enabled for organizations in this enterprise. */
  organizationProjectsSetting: EnterpriseEnabledDisabledSettingValue;
  /** A list of enterprise organizations configured with the provided organization projects setting value. */
  organizationProjectsSettingOrganizations: OrganizationConnection;
  /** A list of outside collaborators across the repositories in the enterprise. */
  outsideCollaborators: EnterpriseOutsideCollaboratorConnection;
  /** A list of pending administrator invitations for the enterprise. */
  pendingAdminInvitations: EnterpriseAdministratorInvitationConnection;
  /** A list of pending collaborator invitations across the repositories in the enterprise. */
  pendingCollaboratorInvitations: RepositoryInvitationConnection;
  /** A list of pending member invitations for organizations in the enterprise. */
  pendingMemberInvitations: EnterprisePendingMemberInvitationConnection;
  /** The setting value for whether repository projects are enabled in this enterprise. */
  repositoryProjectsSetting: EnterpriseEnabledDisabledSettingValue;
  /** A list of enterprise organizations configured with the provided repository projects setting value. */
  repositoryProjectsSettingOrganizations: OrganizationConnection;
  /**
   * The SAML Identity Provider for the enterprise. When used by a GitHub App,
   * requires an installation token with read and write access to members.
   */
  samlIdentityProvider?: Maybe<EnterpriseIdentityProvider>;
  /** A list of enterprise organizations configured with the SAML single sign-on setting value. */
  samlIdentityProviderSettingOrganizations: OrganizationConnection;
  /** A list of members with a support entitlement. */
  supportEntitlements: EnterpriseMemberConnection;
  /** The setting value for whether team discussions are enabled for organizations in this enterprise. */
  teamDiscussionsSetting: EnterpriseEnabledDisabledSettingValue;
  /** A list of enterprise organizations configured with the provided team discussions setting value. */
  teamDiscussionsSettingOrganizations: OrganizationConnection;
  /** The setting value for whether the enterprise requires two-factor authentication for its organizations and users. */
  twoFactorRequiredSetting: EnterpriseEnabledSettingValue;
  /** A list of enterprise organizations configured with the two-factor authentication setting value. */
  twoFactorRequiredSettingOrganizations: OrganizationConnection;
};


/** Enterprise information only visible to enterprise owners. */
export type EnterpriseOwnerInfoAdminsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  hasTwoFactorEnabled?: InputMaybe<Scalars['Boolean']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<EnterpriseMemberOrder>;
  organizationLogins?: InputMaybe<Array<Scalars['String']>>;
  query?: InputMaybe<Scalars['String']>;
  role?: InputMaybe<EnterpriseAdministratorRole>;
};


/** Enterprise information only visible to enterprise owners. */
export type EnterpriseOwnerInfoAffiliatedUsersWithTwoFactorDisabledArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** Enterprise information only visible to enterprise owners. */
export type EnterpriseOwnerInfoAllowPrivateRepositoryForkingSettingOrganizationsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<OrganizationOrder>;
  value: Scalars['Boolean'];
};


/** Enterprise information only visible to enterprise owners. */
export type EnterpriseOwnerInfoDefaultRepositoryPermissionSettingOrganizationsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<OrganizationOrder>;
  value: DefaultRepositoryPermissionField;
};


/** Enterprise information only visible to enterprise owners. */
export type EnterpriseOwnerInfoDomainsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  isApproved?: InputMaybe<Scalars['Boolean']>;
  isVerified?: InputMaybe<Scalars['Boolean']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<VerifiableDomainOrder>;
};


/** Enterprise information only visible to enterprise owners. */
export type EnterpriseOwnerInfoEnterpriseServerInstallationsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  connectedOnly?: InputMaybe<Scalars['Boolean']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<EnterpriseServerInstallationOrder>;
};


/** Enterprise information only visible to enterprise owners. */
export type EnterpriseOwnerInfoFailedInvitationsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  query?: InputMaybe<Scalars['String']>;
};


/** Enterprise information only visible to enterprise owners. */
export type EnterpriseOwnerInfoIpAllowListEntriesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<IpAllowListEntryOrder>;
};


/** Enterprise information only visible to enterprise owners. */
export type EnterpriseOwnerInfoMembersCanChangeRepositoryVisibilitySettingOrganizationsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<OrganizationOrder>;
  value: Scalars['Boolean'];
};


/** Enterprise information only visible to enterprise owners. */
export type EnterpriseOwnerInfoMembersCanCreateRepositoriesSettingOrganizationsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<OrganizationOrder>;
  value: OrganizationMembersCanCreateRepositoriesSettingValue;
};


/** Enterprise information only visible to enterprise owners. */
export type EnterpriseOwnerInfoMembersCanDeleteIssuesSettingOrganizationsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<OrganizationOrder>;
  value: Scalars['Boolean'];
};


/** Enterprise information only visible to enterprise owners. */
export type EnterpriseOwnerInfoMembersCanDeleteRepositoriesSettingOrganizationsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<OrganizationOrder>;
  value: Scalars['Boolean'];
};


/** Enterprise information only visible to enterprise owners. */
export type EnterpriseOwnerInfoMembersCanInviteCollaboratorsSettingOrganizationsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<OrganizationOrder>;
  value: Scalars['Boolean'];
};


/** Enterprise information only visible to enterprise owners. */
export type EnterpriseOwnerInfoMembersCanUpdateProtectedBranchesSettingOrganizationsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<OrganizationOrder>;
  value: Scalars['Boolean'];
};


/** Enterprise information only visible to enterprise owners. */
export type EnterpriseOwnerInfoMembersCanViewDependencyInsightsSettingOrganizationsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<OrganizationOrder>;
  value: Scalars['Boolean'];
};


/** Enterprise information only visible to enterprise owners. */
export type EnterpriseOwnerInfoOrganizationProjectsSettingOrganizationsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<OrganizationOrder>;
  value: Scalars['Boolean'];
};


/** Enterprise information only visible to enterprise owners. */
export type EnterpriseOwnerInfoOutsideCollaboratorsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  hasTwoFactorEnabled?: InputMaybe<Scalars['Boolean']>;
  last?: InputMaybe<Scalars['Int']>;
  login?: InputMaybe<Scalars['String']>;
  orderBy?: InputMaybe<EnterpriseMemberOrder>;
  organizationLogins?: InputMaybe<Array<Scalars['String']>>;
  query?: InputMaybe<Scalars['String']>;
  visibility?: InputMaybe<RepositoryVisibility>;
};


/** Enterprise information only visible to enterprise owners. */
export type EnterpriseOwnerInfoPendingAdminInvitationsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<EnterpriseAdministratorInvitationOrder>;
  query?: InputMaybe<Scalars['String']>;
  role?: InputMaybe<EnterpriseAdministratorRole>;
};


/** Enterprise information only visible to enterprise owners. */
export type EnterpriseOwnerInfoPendingCollaboratorInvitationsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<RepositoryInvitationOrder>;
  query?: InputMaybe<Scalars['String']>;
};


/** Enterprise information only visible to enterprise owners. */
export type EnterpriseOwnerInfoPendingMemberInvitationsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  invitationSource?: InputMaybe<OrganizationInvitationSource>;
  last?: InputMaybe<Scalars['Int']>;
  organizationLogins?: InputMaybe<Array<Scalars['String']>>;
  query?: InputMaybe<Scalars['String']>;
};


/** Enterprise information only visible to enterprise owners. */
export type EnterpriseOwnerInfoRepositoryProjectsSettingOrganizationsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<OrganizationOrder>;
  value: Scalars['Boolean'];
};


/** Enterprise information only visible to enterprise owners. */
export type EnterpriseOwnerInfoSamlIdentityProviderSettingOrganizationsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<OrganizationOrder>;
  value: IdentityProviderConfigurationState;
};


/** Enterprise information only visible to enterprise owners. */
export type EnterpriseOwnerInfoSupportEntitlementsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<EnterpriseMemberOrder>;
};


/** Enterprise information only visible to enterprise owners. */
export type EnterpriseOwnerInfoTeamDiscussionsSettingOrganizationsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<OrganizationOrder>;
  value: Scalars['Boolean'];
};


/** Enterprise information only visible to enterprise owners. */
export type EnterpriseOwnerInfoTwoFactorRequiredSettingOrganizationsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<OrganizationOrder>;
  value: Scalars['Boolean'];
};

/** The connection type for OrganizationInvitation. */
export type EnterprisePendingMemberInvitationConnection = {
  __typename?: 'EnterprisePendingMemberInvitationConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<EnterprisePendingMemberInvitationEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<OrganizationInvitation>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
  /** Identifies the total count of unique users in the connection. */
  totalUniqueUserCount: Scalars['Int'];
};

/** An invitation to be a member in an enterprise organization. */
export type EnterprisePendingMemberInvitationEdge = {
  __typename?: 'EnterprisePendingMemberInvitationEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<OrganizationInvitation>;
};

/** A subset of repository information queryable from an enterprise. */
export type EnterpriseRepositoryInfo = Node & {
  __typename?: 'EnterpriseRepositoryInfo';
  id: Scalars['ID'];
  /** Identifies if the repository is private or internal. */
  isPrivate: Scalars['Boolean'];
  /** The repository's name. */
  name: Scalars['String'];
  /** The repository's name with owner. */
  nameWithOwner: Scalars['String'];
};

/** The connection type for EnterpriseRepositoryInfo. */
export type EnterpriseRepositoryInfoConnection = {
  __typename?: 'EnterpriseRepositoryInfoConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<EnterpriseRepositoryInfoEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<EnterpriseRepositoryInfo>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type EnterpriseRepositoryInfoEdge = {
  __typename?: 'EnterpriseRepositoryInfoEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<EnterpriseRepositoryInfo>;
};

/** An Enterprise Server installation. */
export type EnterpriseServerInstallation = Node & {
  __typename?: 'EnterpriseServerInstallation';
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** The customer name to which the Enterprise Server installation belongs. */
  customerName: Scalars['String'];
  /** The host name of the Enterprise Server installation. */
  hostName: Scalars['String'];
  id: Scalars['ID'];
  /** Whether or not the installation is connected to an Enterprise Server installation via GitHub Connect. */
  isConnected: Scalars['Boolean'];
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
  /** User accounts on this Enterprise Server installation. */
  userAccounts: EnterpriseServerUserAccountConnection;
  /** User accounts uploads for the Enterprise Server installation. */
  userAccountsUploads: EnterpriseServerUserAccountsUploadConnection;
};


/** An Enterprise Server installation. */
export type EnterpriseServerInstallationUserAccountsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<EnterpriseServerUserAccountOrder>;
};


/** An Enterprise Server installation. */
export type EnterpriseServerInstallationUserAccountsUploadsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<EnterpriseServerUserAccountsUploadOrder>;
};

/** The connection type for EnterpriseServerInstallation. */
export type EnterpriseServerInstallationConnection = {
  __typename?: 'EnterpriseServerInstallationConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<EnterpriseServerInstallationEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<EnterpriseServerInstallation>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type EnterpriseServerInstallationEdge = {
  __typename?: 'EnterpriseServerInstallationEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<EnterpriseServerInstallation>;
};

/** The connection type for EnterpriseServerInstallation. */
export type EnterpriseServerInstallationMembershipConnection = {
  __typename?: 'EnterpriseServerInstallationMembershipConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<EnterpriseServerInstallationMembershipEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<EnterpriseServerInstallation>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An Enterprise Server installation that a user is a member of. */
export type EnterpriseServerInstallationMembershipEdge = {
  __typename?: 'EnterpriseServerInstallationMembershipEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<EnterpriseServerInstallation>;
  /** The role of the user in the enterprise membership. */
  role: EnterpriseUserAccountMembershipRole;
};

/** Ordering options for Enterprise Server installation connections. */
export type EnterpriseServerInstallationOrder = {
  /** The ordering direction. */
  direction: OrderDirection;
  /** The field to order Enterprise Server installations by. */
  field: EnterpriseServerInstallationOrderField;
};

/** Properties by which Enterprise Server installation connections can be ordered. */
export type EnterpriseServerInstallationOrderField =
  /** Order Enterprise Server installations by creation time */
  | 'CREATED_AT'
  /** Order Enterprise Server installations by customer name */
  | 'CUSTOMER_NAME'
  /** Order Enterprise Server installations by host name */
  | 'HOST_NAME';

/** A user account on an Enterprise Server installation. */
export type EnterpriseServerUserAccount = Node & {
  __typename?: 'EnterpriseServerUserAccount';
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** User emails belonging to this user account. */
  emails: EnterpriseServerUserAccountEmailConnection;
  /** The Enterprise Server installation on which this user account exists. */
  enterpriseServerInstallation: EnterpriseServerInstallation;
  id: Scalars['ID'];
  /** Whether the user account is a site administrator on the Enterprise Server installation. */
  isSiteAdmin: Scalars['Boolean'];
  /** The login of the user account on the Enterprise Server installation. */
  login: Scalars['String'];
  /** The profile name of the user account on the Enterprise Server installation. */
  profileName?: Maybe<Scalars['String']>;
  /** The date and time when the user account was created on the Enterprise Server installation. */
  remoteCreatedAt: Scalars['DateTime'];
  /** The ID of the user account on the Enterprise Server installation. */
  remoteUserId: Scalars['Int'];
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
};


/** A user account on an Enterprise Server installation. */
export type EnterpriseServerUserAccountEmailsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<EnterpriseServerUserAccountEmailOrder>;
};

/** The connection type for EnterpriseServerUserAccount. */
export type EnterpriseServerUserAccountConnection = {
  __typename?: 'EnterpriseServerUserAccountConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<EnterpriseServerUserAccountEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<EnterpriseServerUserAccount>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type EnterpriseServerUserAccountEdge = {
  __typename?: 'EnterpriseServerUserAccountEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<EnterpriseServerUserAccount>;
};

/** An email belonging to a user account on an Enterprise Server installation. */
export type EnterpriseServerUserAccountEmail = Node & {
  __typename?: 'EnterpriseServerUserAccountEmail';
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** The email address. */
  email: Scalars['String'];
  id: Scalars['ID'];
  /** Indicates whether this is the primary email of the associated user account. */
  isPrimary: Scalars['Boolean'];
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
  /** The user account to which the email belongs. */
  userAccount: EnterpriseServerUserAccount;
};

/** The connection type for EnterpriseServerUserAccountEmail. */
export type EnterpriseServerUserAccountEmailConnection = {
  __typename?: 'EnterpriseServerUserAccountEmailConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<EnterpriseServerUserAccountEmailEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<EnterpriseServerUserAccountEmail>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type EnterpriseServerUserAccountEmailEdge = {
  __typename?: 'EnterpriseServerUserAccountEmailEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<EnterpriseServerUserAccountEmail>;
};

/** Ordering options for Enterprise Server user account email connections. */
export type EnterpriseServerUserAccountEmailOrder = {
  /** The ordering direction. */
  direction: OrderDirection;
  /** The field to order emails by. */
  field: EnterpriseServerUserAccountEmailOrderField;
};

/** Properties by which Enterprise Server user account email connections can be ordered. */
export type EnterpriseServerUserAccountEmailOrderField =
  /** Order emails by email */
  | 'EMAIL';

/** Ordering options for Enterprise Server user account connections. */
export type EnterpriseServerUserAccountOrder = {
  /** The ordering direction. */
  direction: OrderDirection;
  /** The field to order user accounts by. */
  field: EnterpriseServerUserAccountOrderField;
};

/** Properties by which Enterprise Server user account connections can be ordered. */
export type EnterpriseServerUserAccountOrderField =
  /** Order user accounts by login */
  | 'LOGIN'
  /** Order user accounts by creation time on the Enterprise Server installation */
  | 'REMOTE_CREATED_AT';

/** A user accounts upload from an Enterprise Server installation. */
export type EnterpriseServerUserAccountsUpload = Node & {
  __typename?: 'EnterpriseServerUserAccountsUpload';
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** The enterprise to which this upload belongs. */
  enterprise: Enterprise;
  /** The Enterprise Server installation for which this upload was generated. */
  enterpriseServerInstallation: EnterpriseServerInstallation;
  id: Scalars['ID'];
  /** The name of the file uploaded. */
  name: Scalars['String'];
  /** The synchronization state of the upload */
  syncState: EnterpriseServerUserAccountsUploadSyncState;
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
};

/** The connection type for EnterpriseServerUserAccountsUpload. */
export type EnterpriseServerUserAccountsUploadConnection = {
  __typename?: 'EnterpriseServerUserAccountsUploadConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<EnterpriseServerUserAccountsUploadEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<EnterpriseServerUserAccountsUpload>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type EnterpriseServerUserAccountsUploadEdge = {
  __typename?: 'EnterpriseServerUserAccountsUploadEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<EnterpriseServerUserAccountsUpload>;
};

/** Ordering options for Enterprise Server user accounts upload connections. */
export type EnterpriseServerUserAccountsUploadOrder = {
  /** The ordering direction. */
  direction: OrderDirection;
  /** The field to order user accounts uploads by. */
  field: EnterpriseServerUserAccountsUploadOrderField;
};

/** Properties by which Enterprise Server user accounts upload connections can be ordered. */
export type EnterpriseServerUserAccountsUploadOrderField =
  /** Order user accounts uploads by creation time */
  | 'CREATED_AT';

/** Synchronization state of the Enterprise Server user accounts upload */
export type EnterpriseServerUserAccountsUploadSyncState =
  /** The synchronization of the upload failed. */
  | 'FAILURE'
  /** The synchronization of the upload is pending. */
  | 'PENDING'
  /** The synchronization of the upload succeeded. */
  | 'SUCCESS';

/** An account for a user who is an admin of an enterprise or a member of an enterprise through one or more organizations. */
export type EnterpriseUserAccount = Actor & Node & {
  __typename?: 'EnterpriseUserAccount';
  /** A URL pointing to the enterprise user account's public avatar. */
  avatarUrl: Scalars['URI'];
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** The enterprise in which this user account exists. */
  enterprise: Enterprise;
  /** A list of Enterprise Server installations this user is a member of. */
  enterpriseInstallations: EnterpriseServerInstallationMembershipConnection;
  id: Scalars['ID'];
  /** An identifier for the enterprise user account, a login or email address */
  login: Scalars['String'];
  /** The name of the enterprise user account */
  name?: Maybe<Scalars['String']>;
  /** A list of enterprise organizations this user is a member of. */
  organizations: EnterpriseOrganizationMembershipConnection;
  /** The HTTP path for this user. */
  resourcePath: Scalars['URI'];
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
  /** The HTTP URL for this user. */
  url: Scalars['URI'];
  /** The user within the enterprise. */
  user?: Maybe<User>;
};


/** An account for a user who is an admin of an enterprise or a member of an enterprise through one or more organizations. */
export type EnterpriseUserAccountAvatarUrlArgs = {
  size?: InputMaybe<Scalars['Int']>;
};


/** An account for a user who is an admin of an enterprise or a member of an enterprise through one or more organizations. */
export type EnterpriseUserAccountEnterpriseInstallationsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<EnterpriseServerInstallationOrder>;
  query?: InputMaybe<Scalars['String']>;
  role?: InputMaybe<EnterpriseUserAccountMembershipRole>;
};


/** An account for a user who is an admin of an enterprise or a member of an enterprise through one or more organizations. */
export type EnterpriseUserAccountOrganizationsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<OrganizationOrder>;
  query?: InputMaybe<Scalars['String']>;
  role?: InputMaybe<EnterpriseUserAccountMembershipRole>;
};

/** The possible roles for enterprise membership. */
export type EnterpriseUserAccountMembershipRole =
  /** The user is a member of an organization in the enterprise. */
  | 'MEMBER'
  /** The user is an owner of an organization in the enterprise. */
  | 'OWNER'
  /**
   * The user is not an owner of the enterprise, and not a member or owner of any
   * organizations in the enterprise; only for EMU-enabled enterprises.
   */
  | 'UNAFFILIATED';

/** The possible GitHub Enterprise deployments where this user can exist. */
export type EnterpriseUserDeployment =
  /** The user is part of a GitHub Enterprise Cloud deployment. */
  | 'CLOUD'
  /** The user is part of a GitHub Enterprise Server deployment. */
  | 'SERVER';

/** An environment. */
export type Environment = Node & {
  __typename?: 'Environment';
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  id: Scalars['ID'];
  /** The name of the environment */
  name: Scalars['String'];
  /** The protection rules defined for this environment */
  protectionRules: DeploymentProtectionRuleConnection;
};


/** An environment. */
export type EnvironmentProtectionRulesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};

/** The connection type for Environment. */
export type EnvironmentConnection = {
  __typename?: 'EnvironmentConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<EnvironmentEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<Environment>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type EnvironmentEdge = {
  __typename?: 'EnvironmentEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<Environment>;
};

/** An external identity provisioned by SAML SSO or SCIM. */
export type ExternalIdentity = Node & {
  __typename?: 'ExternalIdentity';
  /** The GUID for this identity */
  guid: Scalars['String'];
  id: Scalars['ID'];
  /** Organization invitation for this SCIM-provisioned external identity */
  organizationInvitation?: Maybe<OrganizationInvitation>;
  /** SAML Identity attributes */
  samlIdentity?: Maybe<ExternalIdentitySamlAttributes>;
  /** SCIM Identity attributes */
  scimIdentity?: Maybe<ExternalIdentityScimAttributes>;
  /** User linked to this external identity. Will be NULL if this identity has not been claimed by an organization member. */
  user?: Maybe<User>;
};

/** An attribute for the External Identity attributes collection */
export type ExternalIdentityAttribute = {
  __typename?: 'ExternalIdentityAttribute';
  /** The attribute metadata as JSON */
  metadata?: Maybe<Scalars['String']>;
  /** The attribute name */
  name: Scalars['String'];
  /** The attribute value */
  value: Scalars['String'];
};

/** The connection type for ExternalIdentity. */
export type ExternalIdentityConnection = {
  __typename?: 'ExternalIdentityConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<ExternalIdentityEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<ExternalIdentity>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type ExternalIdentityEdge = {
  __typename?: 'ExternalIdentityEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<ExternalIdentity>;
};

/** SAML attributes for the External Identity */
export type ExternalIdentitySamlAttributes = {
  __typename?: 'ExternalIdentitySamlAttributes';
  /** SAML Identity attributes */
  attributes: Array<ExternalIdentityAttribute>;
  /** The emails associated with the SAML identity */
  emails?: Maybe<Array<UserEmailMetadata>>;
  /** Family name of the SAML identity */
  familyName?: Maybe<Scalars['String']>;
  /** Given name of the SAML identity */
  givenName?: Maybe<Scalars['String']>;
  /** The groups linked to this identity in IDP */
  groups?: Maybe<Array<Scalars['String']>>;
  /** The NameID of the SAML identity */
  nameId?: Maybe<Scalars['String']>;
  /** The userName of the SAML identity */
  username?: Maybe<Scalars['String']>;
};

/** SCIM attributes for the External Identity */
export type ExternalIdentityScimAttributes = {
  __typename?: 'ExternalIdentityScimAttributes';
  /** The emails associated with the SCIM identity */
  emails?: Maybe<Array<UserEmailMetadata>>;
  /** Family name of the SCIM identity */
  familyName?: Maybe<Scalars['String']>;
  /** Given name of the SCIM identity */
  givenName?: Maybe<Scalars['String']>;
  /** The groups linked to this identity in IDP */
  groups?: Maybe<Array<Scalars['String']>>;
  /** The userName of the SCIM identity */
  username?: Maybe<Scalars['String']>;
};

/**
 * A command to add a file at the given path with the given contents as part of a
 * commit.  Any existing file at that that path will be replaced.
 */
export type FileAddition = {
  /** The base64 encoded contents of the file */
  contents: Scalars['Base64String'];
  /** The path in the repository where the file will be located */
  path: Scalars['String'];
};

/**
 * A description of a set of changes to a file tree to be made as part of
 * a git commit, modeled as zero or more file `additions` and zero or more
 * file `deletions`.
 *
 * Both fields are optional; omitting both will produce a commit with no
 * file changes.
 *
 * `deletions` and `additions` describe changes to files identified
 * by their path in the git tree using unix-style path separators, i.e.
 * `/`.  The root of a git tree is an empty string, so paths are not
 * slash-prefixed.
 *
 * `path` values must be unique across all `additions` and `deletions`
 * provided.  Any duplication will result in a validation error.
 *
 * ### Encoding
 *
 * File contents must be provided in full for each `FileAddition`.
 *
 * The `contents` of a `FileAddition` must be encoded using RFC 4648
 * compliant base64, i.e. correct padding is required and no characters
 * outside the standard alphabet may be used.  Invalid base64
 * encoding will be rejected with a validation error.
 *
 * The encoded contents may be binary.
 *
 * For text files, no assumptions are made about the character encoding of
 * the file contents (after base64 decoding).  No charset transcoding or
 * line-ending normalization will be performed; it is the client's
 * responsibility to manage the character encoding of files they provide.
 * However, for maximum compatibility we recommend using UTF-8 encoding
 * and ensuring that all files in a repository use a consistent
 * line-ending convention (`\n` or `\r\n`), and that all files end
 * with a newline.
 *
 * ### Modeling file changes
 *
 * Each of the the five types of conceptual changes that can be made in a
 * git commit can be described using the `FileChanges` type as follows:
 *
 * 1. New file addition: create file `hello world\n` at path `docs/README.txt`:
 *
 *        {
 *          "additions" [
 *            {
 *              "path": "docs/README.txt",
 *              "contents": base64encode("hello world\n")
 *            }
 *          ]
 *        }
 *
 * 2. Existing file modification: change existing `docs/README.txt` to have new
 *    content `new content here\n`:
 *
 *        {
 *          "additions" [
 *            {
 *              "path": "docs/README.txt",
 *              "contents": base64encode("new content here\n")
 *            }
 *          ]
 *        }
 *
 * 3. Existing file deletion: remove existing file `docs/README.txt`.
 *    Note that the path is required to exist -- specifying a
 *    path that does not exist on the given branch will abort the
 *    commit and return an error.
 *
 *        {
 *          "deletions" [
 *            {
 *              "path": "docs/README.txt"
 *            }
 *          ]
 *        }
 *
 *
 * 4. File rename with no changes: rename `docs/README.txt` with
 *    previous content `hello world\n` to the same content at
 *    `newdocs/README.txt`:
 *
 *        {
 *          "deletions" [
 *            {
 *              "path": "docs/README.txt",
 *            }
 *          ],
 *          "additions" [
 *            {
 *              "path": "newdocs/README.txt",
 *              "contents": base64encode("hello world\n")
 *            }
 *          ]
 *        }
 *
 *
 * 5. File rename with changes: rename `docs/README.txt` with
 *    previous content `hello world\n` to a file at path
 *    `newdocs/README.txt` with content `new contents\n`:
 *
 *        {
 *          "deletions" [
 *            {
 *              "path": "docs/README.txt",
 *            }
 *          ],
 *          "additions" [
 *            {
 *              "path": "newdocs/README.txt",
 *              "contents": base64encode("new contents\n")
 *            }
 *          ]
 *        }
 */
export type FileChanges = {
  /** File to add or change. */
  additions?: InputMaybe<Array<FileAddition>>;
  /** Files to delete. */
  deletions?: InputMaybe<Array<FileDeletion>>;
};

/** A command to delete the file at the given path as part of a commit. */
export type FileDeletion = {
  /** The path to delete */
  path: Scalars['String'];
};

/** The possible viewed states of a file . */
export type FileViewedState =
  /** The file has new changes since last viewed. */
  | 'DISMISSED'
  /** The file has not been marked as viewed. */
  | 'UNVIEWED'
  /** The file has been marked as viewed. */
  | 'VIEWED';

/** Autogenerated input type of FollowOrganization */
export type FollowOrganizationInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** ID of the organization to follow. */
  organizationId: Scalars['ID'];
};

/** Autogenerated return type of FollowOrganization */
export type FollowOrganizationPayload = {
  __typename?: 'FollowOrganizationPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The organization that was followed. */
  organization?: Maybe<Organization>;
};

/** Autogenerated input type of FollowUser */
export type FollowUserInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** ID of the user to follow. */
  userId: Scalars['ID'];
};

/** Autogenerated return type of FollowUser */
export type FollowUserPayload = {
  __typename?: 'FollowUserPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The user that was followed. */
  user?: Maybe<User>;
};

/** The connection type for User. */
export type FollowerConnection = {
  __typename?: 'FollowerConnection';
  /** 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;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** The connection type for User. */
export type FollowingConnection = {
  __typename?: 'FollowingConnection';
  /** 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;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** A funding platform link for a repository. */
export type FundingLink = {
  __typename?: 'FundingLink';
  /** The funding platform this link is for. */
  platform: FundingPlatform;
  /** The configured URL for this funding link. */
  url: Scalars['URI'];
};

/** The possible funding platforms for repository funding links. */
export type FundingPlatform =
  /** Community Bridge funding platform. */
  | 'COMMUNITY_BRIDGE'
  /** Custom funding platform. */
  | 'CUSTOM'
  /** GitHub funding platform. */
  | 'GITHUB'
  /** IssueHunt funding platform. */
  | 'ISSUEHUNT'
  /** Ko-fi funding platform. */
  | 'KO_FI'
  /** LFX Crowdfunding funding platform. */
  | 'LFX_CROWDFUNDING'
  /** Liberapay funding platform. */
  | 'LIBERAPAY'
  /** Open Collective funding platform. */
  | 'OPEN_COLLECTIVE'
  /** Otechie funding platform. */
  | 'OTECHIE'
  /** Patreon funding platform. */
  | 'PATREON'
  /** Tidelift funding platform. */
  | 'TIDELIFT';

/** A generic hovercard context with a message and icon */
export type GenericHovercardContext = HovercardContext & {
  __typename?: 'GenericHovercardContext';
  /** A string describing this context */
  message: Scalars['String'];
  /** An octicon to accompany this context */
  octicon: Scalars['String'];
};

/** A Gist. */
export type Gist = Node & Starrable & UniformResourceLocatable & {
  __typename?: 'Gist';
  /** A list of comments associated with the gist */
  comments: GistCommentConnection;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** The gist description. */
  description?: Maybe<Scalars['String']>;
  /** The files in this gist. */
  files?: Maybe<Array<Maybe<GistFile>>>;
  /** A list of forks associated with the gist */
  forks: GistConnection;
  id: Scalars['ID'];
  /** Identifies if the gist is a fork. */
  isFork: Scalars['Boolean'];
  /** Whether the gist is public or not. */
  isPublic: Scalars['Boolean'];
  /** The gist name. */
  name: Scalars['String'];
  /** The gist owner. */
  owner?: Maybe<Organization | User>;
  /** Identifies when the gist was last pushed to. */
  pushedAt?: Maybe<Scalars['DateTime']>;
  /** The HTML path to this resource. */
  resourcePath: Scalars['URI'];
  /** Returns a count of how many stargazers there are on this object */
  stargazerCount: Scalars['Int'];
  /** A list of users who have starred this starrable. */
  stargazers: StargazerConnection;
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
  /** The HTTP URL for this Gist. */
  url: Scalars['URI'];
  /** Returns a boolean indicating whether the viewing user has starred this starrable. */
  viewerHasStarred: Scalars['Boolean'];
};


/** A Gist. */
export type GistCommentsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A Gist. */
export type GistFilesArgs = {
  limit?: InputMaybe<Scalars['Int']>;
  oid?: InputMaybe<Scalars['GitObjectID']>;
};


/** A Gist. */
export type GistForksArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<GistOrder>;
};


/** A Gist. */
export type GistStargazersArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<StarOrder>;
};

/** Represents a comment on an Gist. */
export type GistComment = Comment & Deletable & Minimizable & Node & Updatable & UpdatableComment & {
  __typename?: 'GistComment';
  /** The actor who authored the comment. */
  author?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Author's association with the gist. */
  authorAssociation: CommentAuthorAssociation;
  /** Identifies the comment body. */
  body: Scalars['String'];
  /** The body rendered to HTML. */
  bodyHTML: Scalars['HTML'];
  /** The body rendered to text. */
  bodyText: Scalars['String'];
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Check if this comment was created via an email reply. */
  createdViaEmail: Scalars['Boolean'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** The actor who edited the comment. */
  editor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** The associated gist. */
  gist: Gist;
  id: Scalars['ID'];
  /** Check if this comment was edited and includes an edit with the creation data */
  includesCreatedEdit: Scalars['Boolean'];
  /** Returns whether or not a comment has been minimized. */
  isMinimized: Scalars['Boolean'];
  /** The moment the editor made the last edit */
  lastEditedAt?: Maybe<Scalars['DateTime']>;
  /**
   * Returns why the comment was minimized. One of `abuse`, `off-topic`,
   * `outdated`, `resolved`, `duplicate` and `spam`. Note that the case and
   * formatting of these values differs from the inputs to the `MinimizeComment` mutation.
   */
  minimizedReason?: Maybe<Scalars['String']>;
  /** Identifies when the comment was published at. */
  publishedAt?: Maybe<Scalars['DateTime']>;
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
  /** A list of edits to this content. */
  userContentEdits?: Maybe<UserContentEditConnection>;
  /** Check if the current viewer can delete this object. */
  viewerCanDelete: Scalars['Boolean'];
  /** Check if the current viewer can minimize this object. */
  viewerCanMinimize: Scalars['Boolean'];
  /** Check if the current viewer can update this object. */
  viewerCanUpdate: Scalars['Boolean'];
  /** Reasons why the current viewer can not update this comment. */
  viewerCannotUpdateReasons: Array<CommentCannotUpdateReason>;
  /** Did the viewer author this comment. */
  viewerDidAuthor: Scalars['Boolean'];
};


/** Represents a comment on an Gist. */
export type GistCommentUserContentEditsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};

/** The connection type for GistComment. */
export type GistCommentConnection = {
  __typename?: 'GistCommentConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<GistCommentEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<GistComment>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type GistCommentEdge = {
  __typename?: 'GistCommentEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<GistComment>;
};

/** The connection type for Gist. */
export type GistConnection = {
  __typename?: 'GistConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<GistEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<Gist>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type GistEdge = {
  __typename?: 'GistEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<Gist>;
};

/** A file in a gist. */
export type GistFile = {
  __typename?: 'GistFile';
  /** The file name encoded to remove characters that are invalid in URL paths. */
  encodedName?: Maybe<Scalars['String']>;
  /** The gist file encoding. */
  encoding?: Maybe<Scalars['String']>;
  /** The file extension from the file name. */
  extension?: Maybe<Scalars['String']>;
  /** Indicates if this file is an image. */
  isImage: Scalars['Boolean'];
  /** Whether the file's contents were truncated. */
  isTruncated: Scalars['Boolean'];
  /** The programming language this file is written in. */
  language?: Maybe<Language>;
  /** The gist file name. */
  name?: Maybe<Scalars['String']>;
  /** The gist file size in bytes. */
  size?: Maybe<Scalars['Int']>;
  /** UTF8 text data or null if the file is binary */
  text?: Maybe<Scalars['String']>;
};


/** A file in a gist. */
export type GistFileTextArgs = {
  truncate?: InputMaybe<Scalars['Int']>;
};

/** Ordering options for gist connections */
export type GistOrder = {
  /** The ordering direction. */
  direction: OrderDirection;
  /** The field to order repositories by. */
  field: GistOrderField;
};

/** Properties by which gist connections can be ordered. */
export type GistOrderField =
  /** Order gists by creation time */
  | 'CREATED_AT'
  /** Order gists by push time */
  | 'PUSHED_AT'
  /** Order gists by update time */
  | 'UPDATED_AT';

/** The privacy of a Gist */
export type GistPrivacy =
  /** Gists that are public and secret */
  | 'ALL'
  /** Public */
  | 'PUBLIC'
  /** Secret */
  | 'SECRET';

/** Represents an actor in a Git commit (ie. an author or committer). */
export type GitActor = {
  __typename?: 'GitActor';
  /** A URL pointing to the author's public avatar. */
  avatarUrl: Scalars['URI'];
  /** The timestamp of the Git action (authoring or committing). */
  date?: Maybe<Scalars['GitTimestamp']>;
  /** The email in the Git commit. */
  email?: Maybe<Scalars['String']>;
  /** The name in the Git commit. */
  name?: Maybe<Scalars['String']>;
  /** The GitHub user corresponding to the email field. Null if no such user exists. */
  user?: Maybe<User>;
};


/** Represents an actor in a Git commit (ie. an author or committer). */
export type GitActorAvatarUrlArgs = {
  size?: InputMaybe<Scalars['Int']>;
};

/** The connection type for GitActor. */
export type GitActorConnection = {
  __typename?: 'GitActorConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<GitActorEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<GitActor>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type GitActorEdge = {
  __typename?: 'GitActorEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<GitActor>;
};

/** Represents information about the GitHub instance. */
export type GitHubMetadata = {
  __typename?: 'GitHubMetadata';
  /** Returns a String that's a SHA of `github-services` */
  gitHubServicesSha: Scalars['GitObjectID'];
  /** IP addresses that users connect to for git operations */
  gitIpAddresses?: Maybe<Array<Scalars['String']>>;
  /** IP addresses that service hooks are sent from */
  hookIpAddresses?: Maybe<Array<Scalars['String']>>;
  /** IP addresses that the importer connects from */
  importerIpAddresses?: Maybe<Array<Scalars['String']>>;
  /** Whether or not users are verified */
  isPasswordAuthenticationVerifiable: Scalars['Boolean'];
  /** IP addresses for GitHub Pages' A records */
  pagesIpAddresses?: Maybe<Array<Scalars['String']>>;
};

/** Represents a Git object. */
export type GitObject = {
  /** An abbreviated version of the Git object ID */
  abbreviatedOid: Scalars['String'];
  /** The HTTP path for this Git object */
  commitResourcePath: Scalars['URI'];
  /** The HTTP URL for this Git object */
  commitUrl: Scalars['URI'];
  id: Scalars['ID'];
  /** The Git object ID */
  oid: Scalars['GitObjectID'];
  /** The Repository the Git object belongs to */
  repository: Repository;
};

/** Information about a signature (GPG or S/MIME) on a Commit or Tag. */
export type GitSignature = {
  /** Email used to sign this object. */
  email: Scalars['String'];
  /** True if the signature is valid and verified by GitHub. */
  isValid: Scalars['Boolean'];
  /** Payload for GPG signing object. Raw ODB object without the signature header. */
  payload: Scalars['String'];
  /** ASCII-armored signature header from object. */
  signature: Scalars['String'];
  /** GitHub user corresponding to the email signing this commit. */
  signer?: Maybe<User>;
  /**
   * The state of this signature. `VALID` if signature is valid and verified by
   * GitHub, otherwise represents reason why signature is considered invalid.
   */
  state: GitSignatureState;
  /** True if the signature was made with GitHub's signing key. */
  wasSignedByGitHub: Scalars['Boolean'];
};

/** The state of a Git signature. */
export type GitSignatureState =
  /** The signing certificate or its chain could not be verified */
  | 'BAD_CERT'
  /** Invalid email used for signing */
  | 'BAD_EMAIL'
  /** Signing key expired */
  | 'EXPIRED_KEY'
  /** Internal error - the GPG verification service misbehaved */
  | 'GPGVERIFY_ERROR'
  /** Internal error - the GPG verification service is unavailable at the moment */
  | 'GPGVERIFY_UNAVAILABLE'
  /** Invalid signature */
  | 'INVALID'
  /** Malformed signature */
  | 'MALFORMED_SIG'
  /** The usage flags for the key that signed this don't allow signing */
  | 'NOT_SIGNING_KEY'
  /** Email used for signing not known to GitHub */
  | 'NO_USER'
  /** Valid signature, though certificate revocation check failed */
  | 'OCSP_ERROR'
  /** Valid signature, pending certificate revocation checking */
  | 'OCSP_PENDING'
  /** One or more certificates in chain has been revoked */
  | 'OCSP_REVOKED'
  /** Key used for signing not known to GitHub */
  | 'UNKNOWN_KEY'
  /** Unknown signature type */
  | 'UNKNOWN_SIG_TYPE'
  /** Unsigned */
  | 'UNSIGNED'
  /** Email used for signing unverified on GitHub */
  | 'UNVERIFIED_EMAIL'
  /** Valid signature and verified by GitHub */
  | 'VALID';

/** Represents a GPG signature on a Commit or Tag. */
export type GpgSignature = GitSignature & {
  __typename?: 'GpgSignature';
  /** Email used to sign this object. */
  email: Scalars['String'];
  /** True if the signature is valid and verified by GitHub. */
  isValid: Scalars['Boolean'];
  /** Hex-encoded ID of the key that signed this object. */
  keyId?: Maybe<Scalars['String']>;
  /** Payload for GPG signing object. Raw ODB object without the signature header. */
  payload: Scalars['String'];
  /** ASCII-armored signature header from object. */
  signature: Scalars['String'];
  /** GitHub user corresponding to the email signing this commit. */
  signer?: Maybe<User>;
  /**
   * The state of this signature. `VALID` if signature is valid and verified by
   * GitHub, otherwise represents reason why signature is considered invalid.
   */
  state: GitSignatureState;
  /** True if the signature was made with GitHub's signing key. */
  wasSignedByGitHub: Scalars['Boolean'];
};

/** Autogenerated input type of GrantEnterpriseOrganizationsMigratorRole */
export type GrantEnterpriseOrganizationsMigratorRoleInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the enterprise to which all organizations managed by it will be granted the migrator role. */
  enterpriseId: Scalars['ID'];
  /** The login of the user to grant the migrator role */
  login: Scalars['String'];
};

/** Autogenerated return type of GrantEnterpriseOrganizationsMigratorRole */
export type GrantEnterpriseOrganizationsMigratorRolePayload = {
  __typename?: 'GrantEnterpriseOrganizationsMigratorRolePayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The organizations that had the migrator role applied to for the given user. */
  organizations?: Maybe<OrganizationConnection>;
};


/** Autogenerated return type of GrantEnterpriseOrganizationsMigratorRole */
export type GrantEnterpriseOrganizationsMigratorRolePayloadOrganizationsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};

/** Autogenerated input type of GrantMigratorRole */
export type GrantMigratorRoleInput = {
  /** The user login or Team slug to grant the migrator role. */
  actor: Scalars['String'];
  /** Specifies the type of the actor, can be either USER or TEAM. */
  actorType: ActorType;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the organization that the user/team belongs to. */
  organizationId: Scalars['ID'];
};

/** Autogenerated return type of GrantMigratorRole */
export type GrantMigratorRolePayload = {
  __typename?: 'GrantMigratorRolePayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** Did the operation succeed? */
  success?: Maybe<Scalars['Boolean']>;
};

/** Represents a 'head_ref_deleted' event on a given pull request. */
export type HeadRefDeletedEvent = Node & {
  __typename?: 'HeadRefDeletedEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Identifies the Ref associated with the `head_ref_deleted` event. */
  headRef?: Maybe<Ref>;
  /** Identifies the name of the Ref associated with the `head_ref_deleted` event. */
  headRefName: Scalars['String'];
  id: Scalars['ID'];
  /** PullRequest referenced by event. */
  pullRequest: PullRequest;
};

/** Represents a 'head_ref_force_pushed' event on a given pull request. */
export type HeadRefForcePushedEvent = Node & {
  __typename?: 'HeadRefForcePushedEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the after commit SHA for the 'head_ref_force_pushed' event. */
  afterCommit?: Maybe<Commit>;
  /** Identifies the before commit SHA for the 'head_ref_force_pushed' event. */
  beforeCommit?: Maybe<Commit>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  id: Scalars['ID'];
  /** PullRequest referenced by event. */
  pullRequest: PullRequest;
  /** Identifies the fully qualified ref name for the 'head_ref_force_pushed' event. */
  ref?: Maybe<Ref>;
};

/** Represents a 'head_ref_restored' event on a given pull request. */
export type HeadRefRestoredEvent = Node & {
  __typename?: 'HeadRefRestoredEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  id: Scalars['ID'];
  /** PullRequest referenced by event. */
  pullRequest: PullRequest;
};

/** Detail needed to display a hovercard for a user */
export type Hovercard = {
  __typename?: 'Hovercard';
  /** Each of the contexts for this hovercard */
  contexts: Array<GenericHovercardContext | OrganizationTeamsHovercardContext | OrganizationsHovercardContext | ReviewStatusHovercardContext | ViewerHovercardContext>;
};

/** An individual line of a hovercard */
export type HovercardContext = {
  /** A string describing this context */
  message: Scalars['String'];
  /** An octicon to accompany this context */
  octicon: Scalars['String'];
};

/** The possible states in which authentication can be configured with an identity provider. */
export type IdentityProviderConfigurationState =
  /** Authentication with an identity provider is configured but not enforced. */
  | 'CONFIGURED'
  /** Authentication with an identity provider is configured and enforced. */
  | 'ENFORCED'
  /** Authentication with an identity provider is not configured. */
  | 'UNCONFIGURED';

/** Autogenerated input type of InviteEnterpriseAdmin */
export type InviteEnterpriseAdminInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The email of the person to invite as an administrator. */
  email?: InputMaybe<Scalars['String']>;
  /** The ID of the enterprise to which you want to invite an administrator. */
  enterpriseId: Scalars['ID'];
  /** The login of a user to invite as an administrator. */
  invitee?: InputMaybe<Scalars['String']>;
  /** The role of the administrator. */
  role?: InputMaybe<EnterpriseAdministratorRole>;
};

/** Autogenerated return type of InviteEnterpriseAdmin */
export type InviteEnterpriseAdminPayload = {
  __typename?: 'InviteEnterpriseAdminPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The created enterprise administrator invitation. */
  invitation?: Maybe<EnterpriseAdministratorInvitation>;
};

/** The possible values for the IP allow list enabled setting. */
export type IpAllowListEnabledSettingValue =
  /** The setting is disabled for the owner. */
  | 'DISABLED'
  /** The setting is enabled for the owner. */
  | 'ENABLED';

/** An IP address or range of addresses that is allowed to access an owner's resources. */
export type IpAllowListEntry = Node & {
  __typename?: 'IpAllowListEntry';
  /** A single IP address or range of IP addresses in CIDR notation. */
  allowListValue: Scalars['String'];
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  id: Scalars['ID'];
  /** Whether the entry is currently active. */
  isActive: Scalars['Boolean'];
  /** The name of the IP allow list entry. */
  name?: Maybe<Scalars['String']>;
  /** The owner of the IP allow list entry. */
  owner: IpAllowListOwner;
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
};

/** The connection type for IpAllowListEntry. */
export type IpAllowListEntryConnection = {
  __typename?: 'IpAllowListEntryConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<IpAllowListEntryEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<IpAllowListEntry>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type IpAllowListEntryEdge = {
  __typename?: 'IpAllowListEntryEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<IpAllowListEntry>;
};

/** Ordering options for IP allow list entry connections. */
export type IpAllowListEntryOrder = {
  /** The ordering direction. */
  direction: OrderDirection;
  /** The field to order IP allow list entries by. */
  field: IpAllowListEntryOrderField;
};

/** Properties by which IP allow list entry connections can be ordered. */
export type IpAllowListEntryOrderField =
  /** Order IP allow list entries by the allow list value. */
  | 'ALLOW_LIST_VALUE'
  /** Order IP allow list entries by creation time. */
  | 'CREATED_AT';

/** The possible values for the IP allow list configuration for installed GitHub Apps setting. */
export type IpAllowListForInstalledAppsEnabledSettingValue =
  /** The setting is disabled for the owner. */
  | 'DISABLED'
  /** The setting is enabled for the owner. */
  | 'ENABLED';

/** Types that can own an IP allow list. */
export type IpAllowListOwner = App | Enterprise | Organization;

/** An Issue is a place to discuss ideas, enhancements, tasks, and bugs for a project. */
export type Issue = Assignable & Closable & Comment & Labelable & Lockable & Node & ProjectV2Owner & Reactable & RepositoryNode & Subscribable & UniformResourceLocatable & Updatable & UpdatableComment & {
  __typename?: 'Issue';
  /** Reason that the conversation was locked. */
  activeLockReason?: Maybe<LockReason>;
  /** A list of Users assigned to this object. */
  assignees: UserConnection;
  /** The actor who authored the comment. */
  author?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Author's association with the subject of the comment. */
  authorAssociation: CommentAuthorAssociation;
  /** Identifies the body of the issue. */
  body: Scalars['String'];
  /** The body rendered to HTML. */
  bodyHTML: Scalars['HTML'];
  /** The http path for this issue body */
  bodyResourcePath: Scalars['URI'];
  /** Identifies the body of the issue rendered to text. */
  bodyText: Scalars['String'];
  /** The http URL for this issue body */
  bodyUrl: Scalars['URI'];
  /** Indicates if the object is closed (definition of closed may depend on type) */
  closed: Scalars['Boolean'];
  /** Identifies the date and time when the object was closed. */
  closedAt?: Maybe<Scalars['DateTime']>;
  /** A list of comments associated with the Issue. */
  comments: IssueCommentConnection;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Check if this comment was created via an email reply. */
  createdViaEmail: Scalars['Boolean'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** The actor who edited the comment. */
  editor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the primary key from the database as a BigInt. */
  fullDatabaseId?: Maybe<Scalars['BigInt']>;
  /** The hovercard information for this issue */
  hovercard: Hovercard;
  id: Scalars['ID'];
  /** Check if this comment was edited and includes an edit with the creation data */
  includesCreatedEdit: Scalars['Boolean'];
  /** Indicates whether or not this issue is currently pinned to the repository issues list */
  isPinned?: Maybe<Scalars['Boolean']>;
  /** Is this issue read by the viewer */
  isReadByViewer?: Maybe<Scalars['Boolean']>;
  /** A list of labels associated with the object. */
  labels?: Maybe<LabelConnection>;
  /** The moment the editor made the last edit */
  lastEditedAt?: Maybe<Scalars['DateTime']>;
  /** Branches linked to this issue. */
  linkedBranches: LinkedBranchConnection;
  /** `true` if the object is locked */
  locked: Scalars['Boolean'];
  /** Identifies the milestone associated with the issue. */
  milestone?: Maybe<Milestone>;
  /** Identifies the issue number. */
  number: Scalars['Int'];
  /** A list of Users that are participating in the Issue conversation. */
  participants: UserConnection;
  /** List of project cards associated with this issue. */
  projectCards: ProjectCardConnection;
  /** List of project items associated with this issue. */
  projectItems: ProjectV2ItemConnection;
  /** Find a project by number. */
  projectV2?: Maybe<ProjectV2>;
  /** A list of projects under the owner. */
  projectsV2: ProjectV2Connection;
  /** Identifies when the comment was published at. */
  publishedAt?: Maybe<Scalars['DateTime']>;
  /** A list of reactions grouped by content left on the subject. */
  reactionGroups?: Maybe<Array<ReactionGroup>>;
  /** A list of Reactions left on the Issue. */
  reactions: ReactionConnection;
  /** The repository associated with this node. */
  repository: Repository;
  /** The HTTP path for this issue */
  resourcePath: Scalars['URI'];
  /** Identifies the state of the issue. */
  state: IssueState;
  /** Identifies the reason for the issue state. */
  stateReason?: Maybe<IssueStateReason>;
  /**
   * A list of events, comments, commits, etc. associated with the issue.
   * @deprecated `timeline` will be removed Use Issue.timelineItems instead. Removal on 2020-10-01 UTC.
   */
  timeline: IssueTimelineConnection;
  /** A list of events, comments, commits, etc. associated with the issue. */
  timelineItems: IssueTimelineItemsConnection;
  /** Identifies the issue title. */
  title: Scalars['String'];
  /** Identifies the issue title rendered to HTML. */
  titleHTML: Scalars['String'];
  /** A list of issues that track this issue */
  trackedInIssues: IssueConnection;
  /** A list of issues tracked inside the current issue */
  trackedIssues: IssueConnection;
  /** The number of tracked issues for this issue */
  trackedIssuesCount: Scalars['Int'];
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
  /** The HTTP URL for this issue */
  url: Scalars['URI'];
  /** A list of edits to this content. */
  userContentEdits?: Maybe<UserContentEditConnection>;
  /** Indicates if the object can be closed by the viewer. */
  viewerCanClose: Scalars['Boolean'];
  /** Can user react to this subject */
  viewerCanReact: Scalars['Boolean'];
  /** Indicates if the object can be reopened by the viewer. */
  viewerCanReopen: Scalars['Boolean'];
  /** Check if the viewer is able to change their subscription status for the repository. */
  viewerCanSubscribe: Scalars['Boolean'];
  /** Check if the current viewer can update this object. */
  viewerCanUpdate: Scalars['Boolean'];
  /** Reasons why the current viewer can not update this comment. */
  viewerCannotUpdateReasons: Array<CommentCannotUpdateReason>;
  /** Did the viewer author this comment. */
  viewerDidAuthor: Scalars['Boolean'];
  /** Identifies if the viewer is watching, not watching, or ignoring the subscribable entity. */
  viewerSubscription?: Maybe<SubscriptionState>;
};


/** An Issue is a place to discuss ideas, enhancements, tasks, and bugs for a project. */
export type IssueAssigneesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** An Issue is a place to discuss ideas, enhancements, tasks, and bugs for a project. */
export type IssueCommentsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<IssueCommentOrder>;
};


/** An Issue is a place to discuss ideas, enhancements, tasks, and bugs for a project. */
export type IssueHovercardArgs = {
  includeNotificationContexts?: InputMaybe<Scalars['Boolean']>;
};


/** An Issue is a place to discuss ideas, enhancements, tasks, and bugs for a project. */
export type IssueLabelsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<LabelOrder>;
};


/** An Issue is a place to discuss ideas, enhancements, tasks, and bugs for a project. */
export type IssueLinkedBranchesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** An Issue is a place to discuss ideas, enhancements, tasks, and bugs for a project. */
export type IssueParticipantsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** An Issue is a place to discuss ideas, enhancements, tasks, and bugs for a project. */
export type IssueProjectCardsArgs = {
  after?: InputMaybe<Scalars['String']>;
  archivedStates?: InputMaybe<Array<InputMaybe<ProjectCardArchivedState>>>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** An Issue is a place to discuss ideas, enhancements, tasks, and bugs for a project. */
export type IssueProjectItemsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  includeArchived?: InputMaybe<Scalars['Boolean']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** An Issue is a place to discuss ideas, enhancements, tasks, and bugs for a project. */
export type IssueProjectV2Args = {
  number: Scalars['Int'];
};


/** An Issue is a place to discuss ideas, enhancements, tasks, and bugs for a project. */
export type IssueProjectsV2Args = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ProjectV2Order>;
  query?: InputMaybe<Scalars['String']>;
};


/** An Issue is a place to discuss ideas, enhancements, tasks, and bugs for a project. */
export type IssueReactionsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  content?: InputMaybe<ReactionContent>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ReactionOrder>;
};


/** An Issue is a place to discuss ideas, enhancements, tasks, and bugs for a project. */
export type IssueTimelineArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  since?: InputMaybe<Scalars['DateTime']>;
};


/** An Issue is a place to discuss ideas, enhancements, tasks, and bugs for a project. */
export type IssueTimelineItemsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  itemTypes?: InputMaybe<Array<IssueTimelineItemsItemType>>;
  last?: InputMaybe<Scalars['Int']>;
  since?: InputMaybe<Scalars['DateTime']>;
  skip?: InputMaybe<Scalars['Int']>;
};


/** An Issue is a place to discuss ideas, enhancements, tasks, and bugs for a project. */
export type IssueTrackedInIssuesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** An Issue is a place to discuss ideas, enhancements, tasks, and bugs for a project. */
export type IssueTrackedIssuesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** An Issue is a place to discuss ideas, enhancements, tasks, and bugs for a project. */
export type IssueTrackedIssuesCountArgs = {
  states?: InputMaybe<Array<InputMaybe<TrackedIssueStates>>>;
};


/** An Issue is a place to discuss ideas, enhancements, tasks, and bugs for a project. */
export type IssueUserContentEditsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};

/** The possible state reasons of a closed issue. */
export type IssueClosedStateReason =
  /** An issue that has been closed as completed */
  | 'COMPLETED'
  /** An issue that has been closed as not planned */
  | 'NOT_PLANNED';

/** Represents a comment on an Issue. */
export type IssueComment = Comment & Deletable & Minimizable & Node & Reactable & RepositoryNode & Updatable & UpdatableComment & {
  __typename?: 'IssueComment';
  /** The actor who authored the comment. */
  author?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Author's association with the subject of the comment. */
  authorAssociation: CommentAuthorAssociation;
  /** The body as Markdown. */
  body: Scalars['String'];
  /** The body rendered to HTML. */
  bodyHTML: Scalars['HTML'];
  /** The body rendered to text. */
  bodyText: Scalars['String'];
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Check if this comment was created via an email reply. */
  createdViaEmail: Scalars['Boolean'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** The actor who edited the comment. */
  editor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the primary key from the database as a BigInt. */
  fullDatabaseId?: Maybe<Scalars['BigInt']>;
  id: Scalars['ID'];
  /** Check if this comment was edited and includes an edit with the creation data */
  includesCreatedEdit: Scalars['Boolean'];
  /** Returns whether or not a comment has been minimized. */
  isMinimized: Scalars['Boolean'];
  /** Identifies the issue associated with the comment. */
  issue: Issue;
  /** The moment the editor made the last edit */
  lastEditedAt?: Maybe<Scalars['DateTime']>;
  /**
   * Returns why the comment was minimized. One of `abuse`, `off-topic`,
   * `outdated`, `resolved`, `duplicate` and `spam`. Note that the case and
   * formatting of these values differs from the inputs to the `MinimizeComment` mutation.
   */
  minimizedReason?: Maybe<Scalars['String']>;
  /** Identifies when the comment was published at. */
  publishedAt?: Maybe<Scalars['DateTime']>;
  /**
   * Returns the pull request associated with the comment, if this comment was made on a
   * pull request.
   */
  pullRequest?: Maybe<PullRequest>;
  /** A list of reactions grouped by content left on the subject. */
  reactionGroups?: Maybe<Array<ReactionGroup>>;
  /** A list of Reactions left on the Issue. */
  reactions: ReactionConnection;
  /** The repository associated with this node. */
  repository: Repository;
  /** The HTTP path for this issue comment */
  resourcePath: Scalars['URI'];
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
  /** The HTTP URL for this issue comment */
  url: Scalars['URI'];
  /** A list of edits to this content. */
  userContentEdits?: Maybe<UserContentEditConnection>;
  /** Check if the current viewer can delete this object. */
  viewerCanDelete: Scalars['Boolean'];
  /** Check if the current viewer can minimize this object. */
  viewerCanMinimize: Scalars['Boolean'];
  /** Can user react to this subject */
  viewerCanReact: Scalars['Boolean'];
  /** Check if the current viewer can update this object. */
  viewerCanUpdate: Scalars['Boolean'];
  /** Reasons why the current viewer can not update this comment. */
  viewerCannotUpdateReasons: Array<CommentCannotUpdateReason>;
  /** Did the viewer author this comment. */
  viewerDidAuthor: Scalars['Boolean'];
};


/** Represents a comment on an Issue. */
export type IssueCommentReactionsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  content?: InputMaybe<ReactionContent>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ReactionOrder>;
};


/** Represents a comment on an Issue. */
export type IssueCommentUserContentEditsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};

/** The connection type for IssueComment. */
export type IssueCommentConnection = {
  __typename?: 'IssueCommentConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<IssueCommentEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<IssueComment>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type IssueCommentEdge = {
  __typename?: 'IssueCommentEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<IssueComment>;
};

/** Ways in which lists of issue comments can be ordered upon return. */
export type IssueCommentOrder = {
  /** The direction in which to order issue comments by the specified field. */
  direction: OrderDirection;
  /** The field in which to order issue comments by. */
  field: IssueCommentOrderField;
};

/** Properties by which issue comment connections can be ordered. */
export type IssueCommentOrderField =
  /** Order issue comments by update time */
  | 'UPDATED_AT';

/** The connection type for Issue. */
export type IssueConnection = {
  __typename?: 'IssueConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<IssueEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<Issue>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** This aggregates issues opened by a user within one repository. */
export type IssueContributionsByRepository = {
  __typename?: 'IssueContributionsByRepository';
  /** The issue contributions. */
  contributions: CreatedIssueContributionConnection;
  /** The repository in which the issues were opened. */
  repository: Repository;
};


/** This aggregates issues opened by a user within one repository. */
export type IssueContributionsByRepositoryContributionsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ContributionOrder>;
};

/** An edge in a connection. */
export type IssueEdge = {
  __typename?: 'IssueEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<Issue>;
};

/** Ways in which to filter lists of issues. */
export type IssueFilters = {
  /**
   * List issues assigned to given name. Pass in `null` for issues with no assigned
   * user, and `*` for issues assigned to any user.
   */
  assignee?: InputMaybe<Scalars['String']>;
  /** List issues created by given name. */
  createdBy?: InputMaybe<Scalars['String']>;
  /** List issues where the list of label names exist on the issue. */
  labels?: InputMaybe<Array<Scalars['String']>>;
  /** List issues where the given name is mentioned in the issue. */
  mentioned?: InputMaybe<Scalars['String']>;
  /**
   * List issues by given milestone argument. If an string representation of an
   * integer is passed, it should refer to a milestone by its database ID. Pass in
   * `null` for issues with no milestone, and `*` for issues that are assigned to any milestone.
   */
  milestone?: InputMaybe<Scalars['String']>;
  /**
   * List issues by given milestone argument. If an string representation of an
   * integer is passed, it should refer to a milestone by its number field. Pass in
   * `null` for issues with no milestone, and `*` for issues that are assigned to any milestone.
   */
  milestoneNumber?: InputMaybe<Scalars['String']>;
  /** List issues that have been updated at or after the given date. */
  since?: InputMaybe<Scalars['DateTime']>;
  /** List issues filtered by the list of states given. */
  states?: InputMaybe<Array<IssueState>>;
  /** List issues subscribed to by viewer. */
  viewerSubscribed?: InputMaybe<Scalars['Boolean']>;
};

/** Used for return value of Repository.issueOrPullRequest. */
export type IssueOrPullRequest = Issue | PullRequest;

/** Ways in which lists of issues can be ordered upon return. */
export type IssueOrder = {
  /** The direction in which to order issues by the specified field. */
  direction: OrderDirection;
  /** The field in which to order issues by. */
  field: IssueOrderField;
};

/** Properties by which issue connections can be ordered. */
export type IssueOrderField =
  /** Order issues by comment count */
  | 'COMMENTS'
  /** Order issues by creation time */
  | 'CREATED_AT'
  /** Order issues by update time */
  | 'UPDATED_AT';

/** The possible states of an issue. */
export type IssueState =
  /** An issue that has been closed */
  | 'CLOSED'
  /** An issue that is still open */
  | 'OPEN';

/** The possible state reasons of an issue. */
export type IssueStateReason =
  /** An issue that has been closed as completed */
  | 'COMPLETED'
  /** An issue that has been closed as not planned */
  | 'NOT_PLANNED'
  /** An issue that has been reopened */
  | 'REOPENED';

/** A repository issue template. */
export type IssueTemplate = {
  __typename?: 'IssueTemplate';
  /** The template purpose. */
  about?: Maybe<Scalars['String']>;
  /** The suggested issue body. */
  body?: Maybe<Scalars['String']>;
  /** The template filename. */
  filename: Scalars['String'];
  /** The template name. */
  name: Scalars['String'];
  /** The suggested issue title. */
  title?: Maybe<Scalars['String']>;
};

/** The connection type for IssueTimelineItem. */
export type IssueTimelineConnection = {
  __typename?: 'IssueTimelineConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<IssueTimelineItemEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<IssueTimelineItem>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An item in an issue timeline */
export type IssueTimelineItem = AssignedEvent | ClosedEvent | Commit | CrossReferencedEvent | DemilestonedEvent | IssueComment | LabeledEvent | LockedEvent | MilestonedEvent | ReferencedEvent | RenamedTitleEvent | ReopenedEvent | SubscribedEvent | TransferredEvent | UnassignedEvent | UnlabeledEvent | UnlockedEvent | UnsubscribedEvent | UserBlockedEvent;

/** An edge in a connection. */
export type IssueTimelineItemEdge = {
  __typename?: 'IssueTimelineItemEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<IssueTimelineItem>;
};

/** An item in an issue timeline */
export type IssueTimelineItems = AddedToProjectEvent | AssignedEvent | ClosedEvent | CommentDeletedEvent | ConnectedEvent | ConvertedNoteToIssueEvent | ConvertedToDiscussionEvent | CrossReferencedEvent | DemilestonedEvent | DisconnectedEvent | IssueComment | LabeledEvent | LockedEvent | MarkedAsDuplicateEvent | MentionedEvent | MilestonedEvent | MovedColumnsInProjectEvent | PinnedEvent | ReferencedEvent | RemovedFromProjectEvent | RenamedTitleEvent | ReopenedEvent | SubscribedEvent | TransferredEvent | UnassignedEvent | UnlabeledEvent | UnlockedEvent | UnmarkedAsDuplicateEvent | UnpinnedEvent | UnsubscribedEvent | UserBlockedEvent;

/** The connection type for IssueTimelineItems. */
export type IssueTimelineItemsConnection = {
  __typename?: 'IssueTimelineItemsConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<IssueTimelineItemsEdge>>>;
  /** Identifies the count of items after applying `before` and `after` filters. */
  filteredCount: Scalars['Int'];
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<IssueTimelineItems>>>;
  /** Identifies the count of items after applying `before`/`after` filters and `first`/`last`/`skip` slicing. */
  pageCount: Scalars['Int'];
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
  /** Identifies the date and time when the timeline was last updated. */
  updatedAt: Scalars['DateTime'];
};

/** An edge in a connection. */
export type IssueTimelineItemsEdge = {
  __typename?: 'IssueTimelineItemsEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<IssueTimelineItems>;
};

/** The possible item types found in a timeline. */
export type IssueTimelineItemsItemType =
  /** Represents a 'added_to_project' event on a given issue or pull request. */
  | 'ADDED_TO_PROJECT_EVENT'
  /** Represents an 'assigned' event on any assignable object. */
  | 'ASSIGNED_EVENT'
  /** Represents a 'closed' event on any `Closable`. */
  | 'CLOSED_EVENT'
  /** Represents a 'comment_deleted' event on a given issue or pull request. */
  | 'COMMENT_DELETED_EVENT'
  /** Represents a 'connected' event on a given issue or pull request. */
  | 'CONNECTED_EVENT'
  /** Represents a 'converted_note_to_issue' event on a given issue or pull request. */
  | 'CONVERTED_NOTE_TO_ISSUE_EVENT'
  /** Represents a 'converted_to_discussion' event on a given issue. */
  | 'CONVERTED_TO_DISCUSSION_EVENT'
  /** Represents a mention made by one issue or pull request to another. */
  | 'CROSS_REFERENCED_EVENT'
  /** Represents a 'demilestoned' event on a given issue or pull request. */
  | 'DEMILESTONED_EVENT'
  /** Represents a 'disconnected' event on a given issue or pull request. */
  | 'DISCONNECTED_EVENT'
  /** Represents a comment on an Issue. */
  | 'ISSUE_COMMENT'
  /** Represents a 'labeled' event on a given issue or pull request. */
  | 'LABELED_EVENT'
  /** Represents a 'locked' event on a given issue or pull request. */
  | 'LOCKED_EVENT'
  /** Represents a 'marked_as_duplicate' event on a given issue or pull request. */
  | 'MARKED_AS_DUPLICATE_EVENT'
  /** Represents a 'mentioned' event on a given issue or pull request. */
  | 'MENTIONED_EVENT'
  /** Represents a 'milestoned' event on a given issue or pull request. */
  | 'MILESTONED_EVENT'
  /** Represents a 'moved_columns_in_project' event on a given issue or pull request. */
  | 'MOVED_COLUMNS_IN_PROJECT_EVENT'
  /** Represents a 'pinned' event on a given issue or pull request. */
  | 'PINNED_EVENT'
  /** Represents a 'referenced' event on a given `ReferencedSubject`. */
  | 'REFERENCED_EVENT'
  /** Represents a 'removed_from_project' event on a given issue or pull request. */
  | 'REMOVED_FROM_PROJECT_EVENT'
  /** Represents a 'renamed' event on a given issue or pull request */
  | 'RENAMED_TITLE_EVENT'
  /** Represents a 'reopened' event on any `Closable`. */
  | 'REOPENED_EVENT'
  /** Represents a 'subscribed' event on a given `Subscribable`. */
  | 'SUBSCRIBED_EVENT'
  /** Represents a 'transferred' event on a given issue or pull request. */
  | 'TRANSFERRED_EVENT'
  /** Represents an 'unassigned' event on any assignable object. */
  | 'UNASSIGNED_EVENT'
  /** Represents an 'unlabeled' event on a given issue or pull request. */
  | 'UNLABELED_EVENT'
  /** Represents an 'unlocked' event on a given issue or pull request. */
  | 'UNLOCKED_EVENT'
  /** Represents an 'unmarked_as_duplicate' event on a given issue or pull request. */
  | 'UNMARKED_AS_DUPLICATE_EVENT'
  /** Represents an 'unpinned' event on a given issue or pull request. */
  | 'UNPINNED_EVENT'
  /** Represents an 'unsubscribed' event on a given `Subscribable`. */
  | 'UNSUBSCRIBED_EVENT'
  /** Represents a 'user_blocked' event on a given user. */
  | 'USER_BLOCKED_EVENT';

/** Represents a user signing up for a GitHub account. */
export type JoinedGitHubContribution = Contribution & {
  __typename?: 'JoinedGitHubContribution';
  /**
   * Whether this contribution is associated with a record you do not have access to. For
   * example, your own 'first issue' contribution may have been made on a repository you can no
   * longer access.
   */
  isRestricted: Scalars['Boolean'];
  /** When this contribution was made. */
  occurredAt: Scalars['DateTime'];
  /** The HTTP path for this contribution. */
  resourcePath: Scalars['URI'];
  /** The HTTP URL for this contribution. */
  url: Scalars['URI'];
  /** The user who made this contribution. */
  user: User;
};

/** A label for categorizing Issues, Pull Requests, Milestones, or Discussions with a given Repository. */
export type Label = Node & {
  __typename?: 'Label';
  /** Identifies the label color. */
  color: Scalars['String'];
  /** Identifies the date and time when the label was created. */
  createdAt?: Maybe<Scalars['DateTime']>;
  /** A brief description of this label. */
  description?: Maybe<Scalars['String']>;
  id: Scalars['ID'];
  /** Indicates whether or not this is a default label. */
  isDefault: Scalars['Boolean'];
  /** A list of issues associated with this label. */
  issues: IssueConnection;
  /** Identifies the label name. */
  name: Scalars['String'];
  /** A list of pull requests associated with this label. */
  pullRequests: PullRequestConnection;
  /** The repository associated with this label. */
  repository: Repository;
  /** The HTTP path for this label. */
  resourcePath: Scalars['URI'];
  /** Identifies the date and time when the label was last updated. */
  updatedAt?: Maybe<Scalars['DateTime']>;
  /** The HTTP URL for this label. */
  url: Scalars['URI'];
};


/** A label for categorizing Issues, Pull Requests, Milestones, or Discussions with a given Repository. */
export type LabelIssuesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  filterBy?: InputMaybe<IssueFilters>;
  first?: InputMaybe<Scalars['Int']>;
  labels?: InputMaybe<Array<Scalars['String']>>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<IssueOrder>;
  states?: InputMaybe<Array<IssueState>>;
};


/** A label for categorizing Issues, Pull Requests, Milestones, or Discussions with a given Repository. */
export type LabelPullRequestsArgs = {
  after?: InputMaybe<Scalars['String']>;
  baseRefName?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  headRefName?: InputMaybe<Scalars['String']>;
  labels?: InputMaybe<Array<Scalars['String']>>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<IssueOrder>;
  states?: InputMaybe<Array<PullRequestState>>;
};

/** The connection type for Label. */
export type LabelConnection = {
  __typename?: 'LabelConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<LabelEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<Label>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type LabelEdge = {
  __typename?: 'LabelEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<Label>;
};

/** Ways in which lists of labels can be ordered upon return. */
export type LabelOrder = {
  /** The direction in which to order labels by the specified field. */
  direction: OrderDirection;
  /** The field in which to order labels by. */
  field: LabelOrderField;
};

/** Properties by which label connections can be ordered. */
export type LabelOrderField =
  /** Order labels by creation time */
  | 'CREATED_AT'
  /** Order labels by name  */
  | 'NAME';

/** An object that can have labels assigned to it. */
export type Labelable = {
  /** A list of labels associated with the object. */
  labels?: Maybe<LabelConnection>;
};


/** An object that can have labels assigned to it. */
export type LabelableLabelsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<LabelOrder>;
};

/** Represents a 'labeled' event on a given issue or pull request. */
export type LabeledEvent = Node & {
  __typename?: 'LabeledEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  id: Scalars['ID'];
  /** Identifies the label associated with the 'labeled' event. */
  label: Label;
  /** Identifies the `Labelable` associated with the event. */
  labelable: Discussion | Issue | PullRequest;
};

/** Represents a given language found in repositories. */
export type Language = Node & {
  __typename?: 'Language';
  /** The color defined for the current language. */
  color?: Maybe<Scalars['String']>;
  id: Scalars['ID'];
  /** The name of the current language. */
  name: Scalars['String'];
};

/** A list of languages associated with the parent. */
export type LanguageConnection = {
  __typename?: 'LanguageConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<LanguageEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<Language>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
  /** The total size in bytes of files written in that language. */
  totalSize: Scalars['Int'];
};

/** Represents the language of a repository. */
export type LanguageEdge = {
  __typename?: 'LanguageEdge';
  cursor: Scalars['String'];
  node: Language;
  /** The number of bytes of code written in the language. */
  size: Scalars['Int'];
};

/** Ordering options for language connections. */
export type LanguageOrder = {
  /** The ordering direction. */
  direction: OrderDirection;
  /** The field to order languages by. */
  field: LanguageOrderField;
};

/** Properties by which language connections can be ordered. */
export type LanguageOrderField =
  /** Order languages by the size of all files containing the language */
  | 'SIZE';

/** A repository's open source license */
export type License = Node & {
  __typename?: 'License';
  /** The full text of the license */
  body: Scalars['String'];
  /** The conditions set by the license */
  conditions: Array<Maybe<LicenseRule>>;
  /** A human-readable description of the license */
  description?: Maybe<Scalars['String']>;
  /** Whether the license should be featured */
  featured: Scalars['Boolean'];
  /** Whether the license should be displayed in license pickers */
  hidden: Scalars['Boolean'];
  id: Scalars['ID'];
  /** Instructions on how to implement the license */
  implementation?: Maybe<Scalars['String']>;
  /** The lowercased SPDX ID of the license */
  key: Scalars['String'];
  /** The limitations set by the license */
  limitations: Array<Maybe<LicenseRule>>;
  /** The license full name specified by <https://spdx.org/licenses> */
  name: Scalars['String'];
  /** Customary short name if applicable (e.g, GPLv3) */
  nickname?: Maybe<Scalars['String']>;
  /** The permissions set by the license */
  permissions: Array<Maybe<LicenseRule>>;
  /** Whether the license is a pseudo-license placeholder (e.g., other, no-license) */
  pseudoLicense: Scalars['Boolean'];
  /** Short identifier specified by <https://spdx.org/licenses> */
  spdxId?: Maybe<Scalars['String']>;
  /** URL to the license on <https://choosealicense.com> */
  url?: Maybe<Scalars['URI']>;
};

/** Describes a License's conditions, permissions, and limitations */
export type LicenseRule = {
  __typename?: 'LicenseRule';
  /** A description of the rule */
  description: Scalars['String'];
  /** The machine-readable rule key */
  key: Scalars['String'];
  /** The human-readable rule label */
  label: Scalars['String'];
};

/** Autogenerated input type of LinkProjectV2ToRepository */
export type LinkProjectV2ToRepositoryInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the project to link to the repository. */
  projectId: Scalars['ID'];
  /** The ID of the repository to link to the project. */
  repositoryId: Scalars['ID'];
};

/** Autogenerated return type of LinkProjectV2ToRepository */
export type LinkProjectV2ToRepositoryPayload = {
  __typename?: 'LinkProjectV2ToRepositoryPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The repository the project is linked to. */
  repository?: Maybe<Repository>;
};

/** Autogenerated input type of LinkProjectV2ToTeam */
export type LinkProjectV2ToTeamInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the project to link to the team. */
  projectId: Scalars['ID'];
  /** The ID of the team to link to the project. */
  teamId: Scalars['ID'];
};

/** Autogenerated return type of LinkProjectV2ToTeam */
export type LinkProjectV2ToTeamPayload = {
  __typename?: 'LinkProjectV2ToTeamPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The team the project is linked to */
  team?: Maybe<Team>;
};

/** Autogenerated input type of LinkRepositoryToProject */
export type LinkRepositoryToProjectInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the Project to link to a Repository */
  projectId: Scalars['ID'];
  /** The ID of the Repository to link to a Project. */
  repositoryId: Scalars['ID'];
};

/** Autogenerated return type of LinkRepositoryToProject */
export type LinkRepositoryToProjectPayload = {
  __typename?: 'LinkRepositoryToProjectPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The linked Project. */
  project?: Maybe<Project>;
  /** The linked Repository. */
  repository?: Maybe<Repository>;
};

/** A branch linked to an issue. */
export type LinkedBranch = Node & {
  __typename?: 'LinkedBranch';
  id: Scalars['ID'];
  /** The branch's ref. */
  ref?: Maybe<Ref>;
};

/** The connection type for LinkedBranch. */
export type LinkedBranchConnection = {
  __typename?: 'LinkedBranchConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<LinkedBranchEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<LinkedBranch>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type LinkedBranchEdge = {
  __typename?: 'LinkedBranchEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<LinkedBranch>;
};

/** Autogenerated input type of LockLockable */
export type LockLockableInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** A reason for why the item will be locked. */
  lockReason?: InputMaybe<LockReason>;
  /** ID of the item to be locked. */
  lockableId: Scalars['ID'];
};

/** Autogenerated return type of LockLockable */
export type LockLockablePayload = {
  __typename?: 'LockLockablePayload';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The item that was locked. */
  lockedRecord?: Maybe<Discussion | Issue | PullRequest>;
};

/** The possible reasons that an issue or pull request was locked. */
export type LockReason =
  /** The issue or pull request was locked because the conversation was off-topic. */
  | 'OFF_TOPIC'
  /** The issue or pull request was locked because the conversation was resolved. */
  | 'RESOLVED'
  /** The issue or pull request was locked because the conversation was spam. */
  | 'SPAM'
  /** The issue or pull request was locked because the conversation was too heated. */
  | 'TOO_HEATED';

/** An object that can be locked. */
export type Lockable = {
  /** Reason that the conversation was locked. */
  activeLockReason?: Maybe<LockReason>;
  /** `true` if the object is locked */
  locked: Scalars['Boolean'];
};

/** Represents a 'locked' event on a given issue or pull request. */
export type LockedEvent = Node & {
  __typename?: 'LockedEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  id: Scalars['ID'];
  /** Reason that the conversation was locked (optional). */
  lockReason?: Maybe<LockReason>;
  /** Object that was locked. */
  lockable: Discussion | Issue | PullRequest;
};

/** A placeholder user for attribution of imported data on GitHub. */
export type Mannequin = Actor & Node & UniformResourceLocatable & {
  __typename?: 'Mannequin';
  /** A URL pointing to the GitHub App's public avatar. */
  avatarUrl: Scalars['URI'];
  /** The user that has claimed the data attributed to this mannequin. */
  claimant?: Maybe<User>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** The mannequin's email on the source instance. */
  email?: Maybe<Scalars['String']>;
  id: Scalars['ID'];
  /** The username of the actor. */
  login: Scalars['String'];
  /** The HTML path to this resource. */
  resourcePath: Scalars['URI'];
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
  /** The URL to this resource. */
  url: Scalars['URI'];
};


/** A placeholder user for attribution of imported data on GitHub. */
export type MannequinAvatarUrlArgs = {
  size?: InputMaybe<Scalars['Int']>;
};

/** The connection type for Mannequin. */
export type MannequinConnection = {
  __typename?: 'MannequinConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<MannequinEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<Mannequin>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** Represents a mannequin. */
export type MannequinEdge = {
  __typename?: 'MannequinEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<Mannequin>;
};

/** Ordering options for mannequins. */
export type MannequinOrder = {
  /** The ordering direction. */
  direction: OrderDirection;
  /** The field to order mannequins by. */
  field: MannequinOrderField;
};

/** Properties by which mannequins can be ordered. */
export type MannequinOrderField =
  /** Order mannequins why when they were created. */
  | 'CREATED_AT'
  /** Order mannequins alphabetically by their source login. */
  | 'LOGIN';

/** Autogenerated input type of MarkDiscussionCommentAsAnswer */
export type MarkDiscussionCommentAsAnswerInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The Node ID of the discussion comment to mark as an answer. */
  id: Scalars['ID'];
};

/** Autogenerated return type of MarkDiscussionCommentAsAnswer */
export type MarkDiscussionCommentAsAnswerPayload = {
  __typename?: 'MarkDiscussionCommentAsAnswerPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The discussion that includes the chosen comment. */
  discussion?: Maybe<Discussion>;
};

/** Autogenerated input type of MarkFileAsViewed */
export type MarkFileAsViewedInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The path of the file to mark as viewed */
  path: Scalars['String'];
  /** The Node ID of the pull request. */
  pullRequestId: Scalars['ID'];
};

/** Autogenerated return type of MarkFileAsViewed */
export type MarkFileAsViewedPayload = {
  __typename?: 'MarkFileAsViewedPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The updated pull request. */
  pullRequest?: Maybe<PullRequest>;
};

/** Autogenerated input type of MarkPullRequestReadyForReview */
export type MarkPullRequestReadyForReviewInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** ID of the pull request to be marked as ready for review. */
  pullRequestId: Scalars['ID'];
};

/** Autogenerated return type of MarkPullRequestReadyForReview */
export type MarkPullRequestReadyForReviewPayload = {
  __typename?: 'MarkPullRequestReadyForReviewPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The pull request that is ready for review. */
  pullRequest?: Maybe<PullRequest>;
};

/** Represents a 'marked_as_duplicate' event on a given issue or pull request. */
export type MarkedAsDuplicateEvent = Node & {
  __typename?: 'MarkedAsDuplicateEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** The authoritative issue or pull request which has been duplicated by another. */
  canonical?: Maybe<IssueOrPullRequest>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** The issue or pull request which has been marked as a duplicate of another. */
  duplicate?: Maybe<IssueOrPullRequest>;
  id: Scalars['ID'];
  /** Canonical and duplicate belong to different repositories. */
  isCrossRepository: Scalars['Boolean'];
};

/** A public description of a Marketplace category. */
export type MarketplaceCategory = Node & {
  __typename?: 'MarketplaceCategory';
  /** The category's description. */
  description?: Maybe<Scalars['String']>;
  /** The technical description of how apps listed in this category work with GitHub. */
  howItWorks?: Maybe<Scalars['String']>;
  id: Scalars['ID'];
  /** The category's name. */
  name: Scalars['String'];
  /** How many Marketplace listings have this as their primary category. */
  primaryListingCount: Scalars['Int'];
  /** The HTTP path for this Marketplace category. */
  resourcePath: Scalars['URI'];
  /** How many Marketplace listings have this as their secondary category. */
  secondaryListingCount: Scalars['Int'];
  /** The short name of the category used in its URL. */
  slug: Scalars['String'];
  /** The HTTP URL for this Marketplace category. */
  url: Scalars['URI'];
};

/** A listing in the GitHub integration marketplace. */
export type MarketplaceListing = Node & {
  __typename?: 'MarketplaceListing';
  /** The GitHub App this listing represents. */
  app?: Maybe<App>;
  /** URL to the listing owner's company site. */
  companyUrl?: Maybe<Scalars['URI']>;
  /** The HTTP path for configuring access to the listing's integration or OAuth app */
  configurationResourcePath: Scalars['URI'];
  /** The HTTP URL for configuring access to the listing's integration or OAuth app */
  configurationUrl: Scalars['URI'];
  /** URL to the listing's documentation. */
  documentationUrl?: Maybe<Scalars['URI']>;
  /** The listing's detailed description. */
  extendedDescription?: Maybe<Scalars['String']>;
  /** The listing's detailed description rendered to HTML. */
  extendedDescriptionHTML: Scalars['HTML'];
  /** The listing's introductory description. */
  fullDescription: Scalars['String'];
  /** The listing's introductory description rendered to HTML. */
  fullDescriptionHTML: Scalars['HTML'];
  /** Does this listing have any plans with a free trial? */
  hasPublishedFreeTrialPlans: Scalars['Boolean'];
  /** Does this listing have a terms of service link? */
  hasTermsOfService: Scalars['Boolean'];
  /** Whether the creator of the app is a verified org */
  hasVerifiedOwner: Scalars['Boolean'];
  /** A technical description of how this app works with GitHub. */
  howItWorks?: Maybe<Scalars['String']>;
  /** The listing's technical description rendered to HTML. */
  howItWorksHTML: Scalars['HTML'];
  id: Scalars['ID'];
  /** URL to install the product to the viewer's account or organization. */
  installationUrl?: Maybe<Scalars['URI']>;
  /** Whether this listing's app has been installed for the current viewer */
  installedForViewer: Scalars['Boolean'];
  /** Whether this listing has been removed from the Marketplace. */
  isArchived: Scalars['Boolean'];
  /**
   * Whether this listing is still an editable draft that has not been submitted
   * for review and is not publicly visible in the Marketplace.
   */
  isDraft: Scalars['Boolean'];
  /** Whether the product this listing represents is available as part of a paid plan. */
  isPaid: Scalars['Boolean'];
  /** Whether this listing has been approved for display in the Marketplace. */
  isPublic: Scalars['Boolean'];
  /** Whether this listing has been rejected by GitHub for display in the Marketplace. */
  isRejected: Scalars['Boolean'];
  /** Whether this listing has been approved for unverified display in the Marketplace. */
  isUnverified: Scalars['Boolean'];
  /** Whether this draft listing has been submitted for review for approval to be unverified in the Marketplace. */
  isUnverifiedPending: Scalars['Boolean'];
  /** Whether this draft listing has been submitted for review from GitHub for approval to be verified in the Marketplace. */
  isVerificationPendingFromDraft: Scalars['Boolean'];
  /** Whether this unverified listing has been submitted for review from GitHub for approval to be verified in the Marketplace. */
  isVerificationPendingFromUnverified: Scalars['Boolean'];
  /** Whether this listing has been approved for verified display in the Marketplace. */
  isVerified: Scalars['Boolean'];
  /** The hex color code, without the leading '#', for the logo background. */
  logoBackgroundColor: Scalars['String'];
  /** URL for the listing's logo image. */
  logoUrl?: Maybe<Scalars['URI']>;
  /** The listing's full name. */
  name: Scalars['String'];
  /** The listing's very short description without a trailing period or ampersands. */
  normalizedShortDescription: Scalars['String'];
  /** URL to the listing's detailed pricing. */
  pricingUrl?: Maybe<Scalars['URI']>;
  /** The category that best describes the listing. */
  primaryCategory: MarketplaceCategory;
  /** URL to the listing's privacy policy, may return an empty string for listings that do not require a privacy policy URL. */
  privacyPolicyUrl: Scalars['URI'];
  /** The HTTP path for the Marketplace listing. */
  resourcePath: Scalars['URI'];
  /** The URLs for the listing's screenshots. */
  screenshotUrls: Array<Maybe<Scalars['String']>>;
  /** An alternate category that describes the listing. */
  secondaryCategory?: Maybe<MarketplaceCategory>;
  /** The listing's very short description. */
  shortDescription: Scalars['String'];
  /** The short name of the listing used in its URL. */
  slug: Scalars['String'];
  /** URL to the listing's status page. */
  statusUrl?: Maybe<Scalars['URI']>;
  /** An email address for support for this listing's app. */
  supportEmail?: Maybe<Scalars['String']>;
  /**
   * Either a URL or an email address for support for this listing's app, may
   * return an empty string for listings that do not require a support URL.
   */
  supportUrl: Scalars['URI'];
  /** URL to the listing's terms of service. */
  termsOfServiceUrl?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the Marketplace listing. */
  url: Scalars['URI'];
  /** Can the current viewer add plans for this Marketplace listing. */
  viewerCanAddPlans: Scalars['Boolean'];
  /** Can the current viewer approve this Marketplace listing. */
  viewerCanApprove: Scalars['Boolean'];
  /** Can the current viewer delist this Marketplace listing. */
  viewerCanDelist: Scalars['Boolean'];
  /** Can the current viewer edit this Marketplace listing. */
  viewerCanEdit: Scalars['Boolean'];
  /**
   * Can the current viewer edit the primary and secondary category of this
   * Marketplace listing.
   */
  viewerCanEditCategories: Scalars['Boolean'];
  /** Can the current viewer edit the plans for this Marketplace listing. */
  viewerCanEditPlans: Scalars['Boolean'];
  /**
   * Can the current viewer return this Marketplace listing to draft state
   * so it becomes editable again.
   */
  viewerCanRedraft: Scalars['Boolean'];
  /**
   * Can the current viewer reject this Marketplace listing by returning it to
   * an editable draft state or rejecting it entirely.
   */
  viewerCanReject: Scalars['Boolean'];
  /**
   * Can the current viewer request this listing be reviewed for display in
   * the Marketplace as verified.
   */
  viewerCanRequestApproval: Scalars['Boolean'];
  /** Indicates whether the current user has an active subscription to this Marketplace listing. */
  viewerHasPurchased: Scalars['Boolean'];
  /**
   * Indicates if the current user has purchased a subscription to this Marketplace listing
   * for all of the organizations the user owns.
   */
  viewerHasPurchasedForAllOrganizations: Scalars['Boolean'];
  /** Does the current viewer role allow them to administer this Marketplace listing. */
  viewerIsListingAdmin: Scalars['Boolean'];
};


/** A listing in the GitHub integration marketplace. */
export type MarketplaceListingLogoUrlArgs = {
  size?: InputMaybe<Scalars['Int']>;
};

/** Look up Marketplace Listings */
export type MarketplaceListingConnection = {
  __typename?: 'MarketplaceListingConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<MarketplaceListingEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<MarketplaceListing>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type MarketplaceListingEdge = {
  __typename?: 'MarketplaceListingEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<MarketplaceListing>;
};

/** Entities that have members who can set status messages. */
export type MemberStatusable = {
  /** Get the status messages members of this entity have set that are either public or visible only to the organization. */
  memberStatuses: UserStatusConnection;
};


/** Entities that have members who can set status messages. */
export type MemberStatusableMemberStatusesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<UserStatusOrder>;
};

/** Audit log entry for a members_can_delete_repos.clear event. */
export type MembersCanDeleteReposClearAuditEntry = AuditEntry & EnterpriseAuditEntryData & Node & OrganizationAuditEntryData & {
  __typename?: 'MembersCanDeleteReposClearAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  /** The HTTP path for this enterprise. */
  enterpriseResourcePath?: Maybe<Scalars['URI']>;
  /** The slug of the enterprise. */
  enterpriseSlug?: Maybe<Scalars['String']>;
  /** The HTTP URL for this enterprise. */
  enterpriseUrl?: Maybe<Scalars['URI']>;
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** Audit log entry for a members_can_delete_repos.disable event. */
export type MembersCanDeleteReposDisableAuditEntry = AuditEntry & EnterpriseAuditEntryData & Node & OrganizationAuditEntryData & {
  __typename?: 'MembersCanDeleteReposDisableAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  /** The HTTP path for this enterprise. */
  enterpriseResourcePath?: Maybe<Scalars['URI']>;
  /** The slug of the enterprise. */
  enterpriseSlug?: Maybe<Scalars['String']>;
  /** The HTTP URL for this enterprise. */
  enterpriseUrl?: Maybe<Scalars['URI']>;
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** Audit log entry for a members_can_delete_repos.enable event. */
export type MembersCanDeleteReposEnableAuditEntry = AuditEntry & EnterpriseAuditEntryData & Node & OrganizationAuditEntryData & {
  __typename?: 'MembersCanDeleteReposEnableAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  /** The HTTP path for this enterprise. */
  enterpriseResourcePath?: Maybe<Scalars['URI']>;
  /** The slug of the enterprise. */
  enterpriseSlug?: Maybe<Scalars['String']>;
  /** The HTTP URL for this enterprise. */
  enterpriseUrl?: Maybe<Scalars['URI']>;
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** Represents a 'mentioned' event on a given issue or pull request. */
export type MentionedEvent = Node & {
  __typename?: 'MentionedEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  id: Scalars['ID'];
};

/** Autogenerated input type of MergeBranch */
export type MergeBranchInput = {
  /** The email address to associate with this commit. */
  authorEmail?: InputMaybe<Scalars['String']>;
  /** The name of the base branch that the provided head will be merged into. */
  base: Scalars['String'];
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** Message to use for the merge commit. If omitted, a default will be used. */
  commitMessage?: InputMaybe<Scalars['String']>;
  /** The head to merge into the base branch. This can be a branch name or a commit GitObjectID. */
  head: Scalars['String'];
  /** The Node ID of the Repository containing the base branch that will be modified. */
  repositoryId: Scalars['ID'];
};

/** Autogenerated return type of MergeBranch */
export type MergeBranchPayload = {
  __typename?: 'MergeBranchPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The resulting merge Commit. */
  mergeCommit?: Maybe<Commit>;
};

/** The possible default commit messages for merges. */
export type MergeCommitMessage =
  /** Default to a blank commit message. */
  | 'BLANK'
  /** Default to the pull request's body. */
  | 'PR_BODY'
  /** Default to the pull request's title. */
  | 'PR_TITLE';

/** The possible default commit titles for merges. */
export type MergeCommitTitle =
  /** Default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). */
  | 'MERGE_MESSAGE'
  /** Default to the pull request's title. */
  | 'PR_TITLE';

/** Autogenerated input type of MergePullRequest */
export type MergePullRequestInput = {
  /** The email address to associate with this merge. */
  authorEmail?: InputMaybe<Scalars['String']>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** Commit body to use for the merge commit; if omitted, a default message will be used */
  commitBody?: InputMaybe<Scalars['String']>;
  /** Commit headline to use for the merge commit; if omitted, a default message will be used. */
  commitHeadline?: InputMaybe<Scalars['String']>;
  /** OID that the pull request head ref must match to allow merge; if omitted, no check is performed. */
  expectedHeadOid?: InputMaybe<Scalars['GitObjectID']>;
  /** The merge method to use. If omitted, defaults to 'MERGE' */
  mergeMethod?: InputMaybe<PullRequestMergeMethod>;
  /** ID of the pull request to be merged. */
  pullRequestId: Scalars['ID'];
};

/** Autogenerated return type of MergePullRequest */
export type MergePullRequestPayload = {
  __typename?: 'MergePullRequestPayload';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The pull request that was merged. */
  pullRequest?: Maybe<PullRequest>;
};

/** Whether or not a PullRequest can be merged. */
export type MergeableState =
  /** The pull request cannot be merged due to merge conflicts. */
  | 'CONFLICTING'
  /** The pull request can be merged. */
  | 'MERGEABLE'
  /** The mergeability of the pull request is still being calculated. */
  | 'UNKNOWN';

/** Represents a 'merged' event on a given pull request. */
export type MergedEvent = Node & UniformResourceLocatable & {
  __typename?: 'MergedEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the commit associated with the `merge` event. */
  commit?: Maybe<Commit>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  id: Scalars['ID'];
  /** Identifies the Ref associated with the `merge` event. */
  mergeRef?: Maybe<Ref>;
  /** Identifies the name of the Ref associated with the `merge` event. */
  mergeRefName: Scalars['String'];
  /** PullRequest referenced by event. */
  pullRequest: PullRequest;
  /** The HTTP path for this merged event. */
  resourcePath: Scalars['URI'];
  /** The HTTP URL for this merged event. */
  url: Scalars['URI'];
};

/** Represents a GitHub Enterprise Importer (GEI) migration. */
export type Migration = {
  /** The migration flag to continue on error. */
  continueOnError: Scalars['Boolean'];
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['String']>;
  /** The reason the migration failed. */
  failureReason?: Maybe<Scalars['String']>;
  id: Scalars['ID'];
  /** The URL for the migration log (expires 1 day after migration completes). */
  migrationLogUrl?: Maybe<Scalars['URI']>;
  /** The migration source. */
  migrationSource: MigrationSource;
  /** The target repository name. */
  repositoryName: Scalars['String'];
  /** The migration source URL, for example `https://github.com` or `https://monalisa.ghe.com`. */
  sourceUrl: Scalars['URI'];
  /** The migration state. */
  state: MigrationState;
};

/** A GitHub Enterprise Importer (GEI) migration source. */
export type MigrationSource = Node & {
  __typename?: 'MigrationSource';
  id: Scalars['ID'];
  /** The migration source name. */
  name: Scalars['String'];
  /** The migration source type. */
  type: MigrationSourceType;
  /** The migration source URL, for example `https://github.com` or `https://monalisa.ghe.com`. */
  url: Scalars['URI'];
};

/** Represents the different GitHub Enterprise Importer (GEI) migration sources. */
export type MigrationSourceType =
  /** An Azure DevOps migration source. */
  | 'AZURE_DEVOPS'
  /** A Bitbucket Server migration source. */
  | 'BITBUCKET_SERVER'
  /** A GitHub Migration API source. */
  | 'GITHUB_ARCHIVE';

/** The GitHub Enterprise Importer (GEI) migration state. */
export type MigrationState =
  /** The migration has failed. */
  | 'FAILED'
  /** The migration has invalid credentials. */
  | 'FAILED_VALIDATION'
  /** The migration is in progress. */
  | 'IN_PROGRESS'
  /** The migration has not started. */
  | 'NOT_STARTED'
  /** The migration needs to have its credentials validated. */
  | 'PENDING_VALIDATION'
  /** The migration has been queued. */
  | 'QUEUED'
  /** The migration has succeeded. */
  | 'SUCCEEDED';

/** Represents a Milestone object on a given repository. */
export type Milestone = Closable & Node & UniformResourceLocatable & {
  __typename?: 'Milestone';
  /** Indicates if the object is closed (definition of closed may depend on type) */
  closed: Scalars['Boolean'];
  /** Identifies the date and time when the object was closed. */
  closedAt?: Maybe<Scalars['DateTime']>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Identifies the actor who created the milestone. */
  creator?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the description of the milestone. */
  description?: Maybe<Scalars['String']>;
  /** Identifies the due date of the milestone. */
  dueOn?: Maybe<Scalars['DateTime']>;
  id: Scalars['ID'];
  /** A list of issues associated with the milestone. */
  issues: IssueConnection;
  /** Identifies the number of the milestone. */
  number: Scalars['Int'];
  /** Identifies the percentage complete for the milestone */
  progressPercentage: Scalars['Float'];
  /** A list of pull requests associated with the milestone. */
  pullRequests: PullRequestConnection;
  /** The repository associated with this milestone. */
  repository: Repository;
  /** The HTTP path for this milestone */
  resourcePath: Scalars['URI'];
  /** Identifies the state of the milestone. */
  state: MilestoneState;
  /** Identifies the title of the milestone. */
  title: Scalars['String'];
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
  /** The HTTP URL for this milestone */
  url: Scalars['URI'];
  /** Indicates if the object can be closed by the viewer. */
  viewerCanClose: Scalars['Boolean'];
  /** Indicates if the object can be reopened by the viewer. */
  viewerCanReopen: Scalars['Boolean'];
};


/** Represents a Milestone object on a given repository. */
export type MilestoneIssuesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  filterBy?: InputMaybe<IssueFilters>;
  first?: InputMaybe<Scalars['Int']>;
  labels?: InputMaybe<Array<Scalars['String']>>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<IssueOrder>;
  states?: InputMaybe<Array<IssueState>>;
};


/** Represents a Milestone object on a given repository. */
export type MilestonePullRequestsArgs = {
  after?: InputMaybe<Scalars['String']>;
  baseRefName?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  headRefName?: InputMaybe<Scalars['String']>;
  labels?: InputMaybe<Array<Scalars['String']>>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<IssueOrder>;
  states?: InputMaybe<Array<PullRequestState>>;
};

/** The connection type for Milestone. */
export type MilestoneConnection = {
  __typename?: 'MilestoneConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<MilestoneEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<Milestone>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type MilestoneEdge = {
  __typename?: 'MilestoneEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<Milestone>;
};

/** Types that can be inside a Milestone. */
export type MilestoneItem = Issue | PullRequest;

/** Ordering options for milestone connections. */
export type MilestoneOrder = {
  /** The ordering direction. */
  direction: OrderDirection;
  /** The field to order milestones by. */
  field: MilestoneOrderField;
};

/** Properties by which milestone connections can be ordered. */
export type MilestoneOrderField =
  /** Order milestones by when they were created. */
  | 'CREATED_AT'
  /** Order milestones by when they are due. */
  | 'DUE_DATE'
  /** Order milestones by their number. */
  | 'NUMBER'
  /** Order milestones by when they were last updated. */
  | 'UPDATED_AT';

/** The possible states of a milestone. */
export type MilestoneState =
  /** A milestone that has been closed. */
  | 'CLOSED'
  /** A milestone that is still open. */
  | 'OPEN';

/** Represents a 'milestoned' event on a given issue or pull request. */
export type MilestonedEvent = Node & {
  __typename?: 'MilestonedEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  id: Scalars['ID'];
  /** Identifies the milestone title associated with the 'milestoned' event. */
  milestoneTitle: Scalars['String'];
  /** Object referenced by event. */
  subject: MilestoneItem;
};

/** Entities that can be minimized. */
export type Minimizable = {
  /** Returns whether or not a comment has been minimized. */
  isMinimized: Scalars['Boolean'];
  /**
   * Returns why the comment was minimized. One of `abuse`, `off-topic`,
   * `outdated`, `resolved`, `duplicate` and `spam`. Note that the case and
   * formatting of these values differs from the inputs to the `MinimizeComment` mutation.
   */
  minimizedReason?: Maybe<Scalars['String']>;
  /** Check if the current viewer can minimize this object. */
  viewerCanMinimize: Scalars['Boolean'];
};

/** Autogenerated input type of MinimizeComment */
export type MinimizeCommentInput = {
  /** The classification of comment */
  classifier: ReportedContentClassifiers;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The Node ID of the subject to modify. */
  subjectId: Scalars['ID'];
};

/** Autogenerated return type of MinimizeComment */
export type MinimizeCommentPayload = {
  __typename?: 'MinimizeCommentPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The comment that was minimized. */
  minimizedComment?: Maybe<CommitComment | DiscussionComment | GistComment | IssueComment | PullRequestReviewComment>;
};

/** Autogenerated input type of MoveProjectCard */
export type MoveProjectCardInput = {
  /** Place the new card after the card with this id. Pass null to place it at the top. */
  afterCardId?: InputMaybe<Scalars['ID']>;
  /** The id of the card to move. */
  cardId: Scalars['ID'];
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The id of the column to move it into. */
  columnId: Scalars['ID'];
};

/** Autogenerated return type of MoveProjectCard */
export type MoveProjectCardPayload = {
  __typename?: 'MoveProjectCardPayload';
  /** The new edge of the moved card. */
  cardEdge?: Maybe<ProjectCardEdge>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
};

/** Autogenerated input type of MoveProjectColumn */
export type MoveProjectColumnInput = {
  /** Place the new column after the column with this id. Pass null to place it at the front. */
  afterColumnId?: InputMaybe<Scalars['ID']>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The id of the column to move. */
  columnId: Scalars['ID'];
};

/** Autogenerated return type of MoveProjectColumn */
export type MoveProjectColumnPayload = {
  __typename?: 'MoveProjectColumnPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The new edge of the moved column. */
  columnEdge?: Maybe<ProjectColumnEdge>;
};

/** Represents a 'moved_columns_in_project' event on a given issue or pull request. */
export type MovedColumnsInProjectEvent = Node & {
  __typename?: 'MovedColumnsInProjectEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  id: Scalars['ID'];
};

/** The root query for implementing GraphQL mutations. */
export type Mutation = {
  __typename?: 'Mutation';
  /** Clear all of a customer's queued migrations */
  abortQueuedMigrations?: Maybe<AbortQueuedMigrationsPayload>;
  /** Accepts a pending invitation for a user to become an administrator of an enterprise. */
  acceptEnterpriseAdministratorInvitation?: Maybe<AcceptEnterpriseAdministratorInvitationPayload>;
  /** Applies a suggested topic to the repository. */
  acceptTopicSuggestion?: Maybe<AcceptTopicSuggestionPayload>;
  /** Adds assignees to an assignable object. */
  addAssigneesToAssignable?: Maybe<AddAssigneesToAssignablePayload>;
  /** Adds a comment to an Issue or Pull Request. */
  addComment?: Maybe<AddCommentPayload>;
  /** Adds a comment to a Discussion, possibly as a reply to another comment. */
  addDiscussionComment?: Maybe<AddDiscussionCommentPayload>;
  /** Vote for an option in a discussion poll. */
  addDiscussionPollVote?: Maybe<AddDiscussionPollVotePayload>;
  /** Adds enterprise members to an organization within the enterprise. */
  addEnterpriseOrganizationMember?: Maybe<AddEnterpriseOrganizationMemberPayload>;
  /** Adds a support entitlement to an enterprise member. */
  addEnterpriseSupportEntitlement?: Maybe<AddEnterpriseSupportEntitlementPayload>;
  /** Adds labels to a labelable object. */
  addLabelsToLabelable?: Maybe<AddLabelsToLabelablePayload>;
  /** Adds a card to a ProjectColumn. Either `contentId` or `note` must be provided but **not** both. */
  addProjectCard?: Maybe<AddProjectCardPayload>;
  /** Adds a column to a Project. */
  addProjectColumn?: Maybe<AddProjectColumnPayload>;
  /** Creates a new draft issue and add it to a Project. */
  addProjectV2DraftIssue?: Maybe<AddProjectV2DraftIssuePayload>;
  /** Links an existing content instance to a Project. */
  addProjectV2ItemById?: Maybe<AddProjectV2ItemByIdPayload>;
  /** Adds a review to a Pull Request. */
  addPullRequestReview?: Maybe<AddPullRequestReviewPayload>;
  /** Adds a comment to a review. */
  addPullRequestReviewComment?: Maybe<AddPullRequestReviewCommentPayload>;
  /** Adds a new thread to a pending Pull Request Review. */
  addPullRequestReviewThread?: Maybe<AddPullRequestReviewThreadPayload>;
  /** Adds a reaction to a subject. */
  addReaction?: Maybe<AddReactionPayload>;
  /** Adds a star to a Starrable. */
  addStar?: Maybe<AddStarPayload>;
  /** Add an upvote to a discussion or discussion comment. */
  addUpvote?: Maybe<AddUpvotePayload>;
  /** Adds a verifiable domain to an owning account. */
  addVerifiableDomain?: Maybe<AddVerifiableDomainPayload>;
  /** Approve all pending deployments under one or more environments */
  approveDeployments?: Maybe<ApproveDeploymentsPayload>;
  /** Approve a verifiable domain for notification delivery. */
  approveVerifiableDomain?: Maybe<ApproveVerifiableDomainPayload>;
  /** Archives a ProjectV2Item */
  archiveProjectV2Item?: Maybe<ArchiveProjectV2ItemPayload>;
  /** Marks a repository as archived. */
  archiveRepository?: Maybe<ArchiveRepositoryPayload>;
  /** Cancels a pending invitation for an administrator to join an enterprise. */
  cancelEnterpriseAdminInvitation?: Maybe<CancelEnterpriseAdminInvitationPayload>;
  /** Cancel an active sponsorship. */
  cancelSponsorship?: Maybe<CancelSponsorshipPayload>;
  /** Update your status on GitHub. */
  changeUserStatus?: Maybe<ChangeUserStatusPayload>;
  /** Clears all labels from a labelable object. */
  clearLabelsFromLabelable?: Maybe<ClearLabelsFromLabelablePayload>;
  /**
   * This mutation clears the value of a field for an item in a Project. Currently
   * only text, number, date, assignees, labels, single-select, iteration and
   * milestone fields are supported.
   */
  clearProjectV2ItemFieldValue?: Maybe<ClearProjectV2ItemFieldValuePayload>;
  /** Creates a new project by cloning configuration from an existing project. */
  cloneProject?: Maybe<CloneProjectPayload>;
  /** Create a new repository with the same files and directory structure as a template repository. */
  cloneTemplateRepository?: Maybe<CloneTemplateRepositoryPayload>;
  /** Close a discussion. */
  closeDiscussion?: Maybe<CloseDiscussionPayload>;
  /** Close an issue. */
  closeIssue?: Maybe<CloseIssuePayload>;
  /** Close a pull request. */
  closePullRequest?: Maybe<ClosePullRequestPayload>;
  /** Convert a project note card to one associated with a newly created issue. */
  convertProjectCardNoteToIssue?: Maybe<ConvertProjectCardNoteToIssuePayload>;
  /** Converts a pull request to draft */
  convertPullRequestToDraft?: Maybe<ConvertPullRequestToDraftPayload>;
  /** Copy a project. */
  copyProjectV2?: Maybe<CopyProjectV2Payload>;
  /** Invites a user to claim reattributable data */
  createAttributionInvitation?: Maybe<CreateAttributionInvitationPayload>;
  /** Create a new branch protection rule */
  createBranchProtectionRule?: Maybe<CreateBranchProtectionRulePayload>;
  /** Create a check run. */
  createCheckRun?: Maybe<CreateCheckRunPayload>;
  /** Create a check suite */
  createCheckSuite?: Maybe<CreateCheckSuitePayload>;
  /**
   * Appends a commit to the given branch as the authenticated user.
   *
   * This mutation creates a commit whose parent is the HEAD of the provided
   * branch and also updates that branch to point to the new commit.
   * It can be thought of as similar to `git commit`.
   *
   * ### Locating a Branch
   *
   * Commits are appended to a `branch` of type `Ref`.
   * This must refer to a git branch (i.e.  the fully qualified path must
   * begin with `refs/heads/`, although including this prefix is optional.
   *
   * Callers may specify the `branch` to commit to either by its global node
   * ID or by passing both of `repositoryNameWithOwner` and `refName`.  For
   * more details see the documentation for `CommittableBranch`.
   *
   * ### Describing Changes
   *
   * `fileChanges` are specified as a `FilesChanges` object describing
   * `FileAdditions` and `FileDeletions`.
   *
   * Please see the documentation for `FileChanges` for more information on
   * how to use this argument to describe any set of file changes.
   *
   * ### Authorship
   *
   * Similar to the web commit interface, this mutation does not support
   * specifying the author or committer of the commit and will not add
   * support for this in the future.
   *
   * A commit created by a successful execution of this mutation will be
   * authored by the owner of the credential which authenticates the API
   * request.  The committer will be identical to that of commits authored
   * using the web interface.
   *
   * If you need full control over author and committer information, please
   * use the Git Database REST API instead.
   *
   * ### Commit Signing
   *
   * Commits made using this mutation are automatically signed by GitHub if
   * supported and will be marked as verified in the user interface.
   */
  createCommitOnBranch?: Maybe<CreateCommitOnBranchPayload>;
  /** Create a discussion. */
  createDiscussion?: Maybe<CreateDiscussionPayload>;
  /** Creates an organization as part of an enterprise account. */
  createEnterpriseOrganization?: Maybe<CreateEnterpriseOrganizationPayload>;
  /** Creates an environment or simply returns it if already exists. */
  createEnvironment?: Maybe<CreateEnvironmentPayload>;
  /** Creates a new IP allow list entry. */
  createIpAllowListEntry?: Maybe<CreateIpAllowListEntryPayload>;
  /** Creates a new issue. */
  createIssue?: Maybe<CreateIssuePayload>;
  /** Create a branch linked to an issue. */
  createLinkedBranch?: Maybe<CreateLinkedBranchPayload>;
  /** Creates a GitHub Enterprise Importer (GEI) migration source. */
  createMigrationSource?: Maybe<CreateMigrationSourcePayload>;
  /** Creates a new project. */
  createProject?: Maybe<CreateProjectPayload>;
  /** Creates a new project. */
  createProjectV2?: Maybe<CreateProjectV2Payload>;
  /** Create a new project field. */
  createProjectV2Field?: Maybe<CreateProjectV2FieldPayload>;
  /** Create a new pull request */
  createPullRequest?: Maybe<CreatePullRequestPayload>;
  /** Create a new Git Ref. */
  createRef?: Maybe<CreateRefPayload>;
  /** Create a new repository. */
  createRepository?: Maybe<CreateRepositoryPayload>;
  /** Create a GitHub Sponsors profile to allow others to sponsor you or your organization. */
  createSponsorsListing?: Maybe<CreateSponsorsListingPayload>;
  /** Create a new payment tier for your GitHub Sponsors profile. */
  createSponsorsTier?: Maybe<CreateSponsorsTierPayload>;
  /** Start a new sponsorship of a maintainer in GitHub Sponsors, or reactivate a past sponsorship. */
  createSponsorship?: Maybe<CreateSponsorshipPayload>;
  /** Creates a new team discussion. */
  createTeamDiscussion?: Maybe<CreateTeamDiscussionPayload>;
  /** Creates a new team discussion comment. */
  createTeamDiscussionComment?: Maybe<CreateTeamDiscussionCommentPayload>;
  /** Rejects a suggested topic for the repository. */
  declineTopicSuggestion?: Maybe<DeclineTopicSuggestionPayload>;
  /** Delete a branch protection rule */
  deleteBranchProtectionRule?: Maybe<DeleteBranchProtectionRulePayload>;
  /** Deletes a deployment. */
  deleteDeployment?: Maybe<DeleteDeploymentPayload>;
  /** Delete a discussion and all of its replies. */
  deleteDiscussion?: Maybe<DeleteDiscussionPayload>;
  /** Delete a discussion comment. If it has replies, wipe it instead. */
  deleteDiscussionComment?: Maybe<DeleteDiscussionCommentPayload>;
  /** Deletes an environment */
  deleteEnvironment?: Maybe<DeleteEnvironmentPayload>;
  /** Deletes an IP allow list entry. */
  deleteIpAllowListEntry?: Maybe<DeleteIpAllowListEntryPayload>;
  /** Deletes an Issue object. */
  deleteIssue?: Maybe<DeleteIssuePayload>;
  /** Deletes an IssueComment object. */
  deleteIssueComment?: Maybe<DeleteIssueCommentPayload>;
  /** Unlink a branch from an issue. */
  deleteLinkedBranch?: Maybe<DeleteLinkedBranchPayload>;
  /** Deletes a project. */
  deleteProject?: Maybe<DeleteProjectPayload>;
  /** Deletes a project card. */
  deleteProjectCard?: Maybe<DeleteProjectCardPayload>;
  /** Deletes a project column. */
  deleteProjectColumn?: Maybe<DeleteProjectColumnPayload>;
  /** Delete a project. */
  deleteProjectV2?: Maybe<DeleteProjectV2Payload>;
  /** Delete a project field. */
  deleteProjectV2Field?: Maybe<DeleteProjectV2FieldPayload>;
  /** Deletes an item from a Project. */
  deleteProjectV2Item?: Maybe<DeleteProjectV2ItemPayload>;
  /** Deletes a project workflow. */
  deleteProjectV2Workflow?: Maybe<DeleteProjectV2WorkflowPayload>;
  /** Deletes a pull request review. */
  deletePullRequestReview?: Maybe<DeletePullRequestReviewPayload>;
  /** Deletes a pull request review comment. */
  deletePullRequestReviewComment?: Maybe<DeletePullRequestReviewCommentPayload>;
  /** Delete a Git Ref. */
  deleteRef?: Maybe<DeleteRefPayload>;
  /** Deletes a team discussion. */
  deleteTeamDiscussion?: Maybe<DeleteTeamDiscussionPayload>;
  /** Deletes a team discussion comment. */
  deleteTeamDiscussionComment?: Maybe<DeleteTeamDiscussionCommentPayload>;
  /** Deletes a verifiable domain. */
  deleteVerifiableDomain?: Maybe<DeleteVerifiableDomainPayload>;
  /** Disable auto merge on the given pull request */
  disablePullRequestAutoMerge?: Maybe<DisablePullRequestAutoMergePayload>;
  /** Dismisses an approved or rejected pull request review. */
  dismissPullRequestReview?: Maybe<DismissPullRequestReviewPayload>;
  /** Dismisses the Dependabot alert. */
  dismissRepositoryVulnerabilityAlert?: Maybe<DismissRepositoryVulnerabilityAlertPayload>;
  /** Enable the default auto-merge on a pull request. */
  enablePullRequestAutoMerge?: Maybe<EnablePullRequestAutoMergePayload>;
  /** Follow an organization. */
  followOrganization?: Maybe<FollowOrganizationPayload>;
  /** Follow a user. */
  followUser?: Maybe<FollowUserPayload>;
  /** Grant the migrator role to a user for all organizations under an enterprise account. */
  grantEnterpriseOrganizationsMigratorRole?: Maybe<GrantEnterpriseOrganizationsMigratorRolePayload>;
  /** Grant the migrator role to a user or a team. */
  grantMigratorRole?: Maybe<GrantMigratorRolePayload>;
  /** Invite someone to become an administrator of the enterprise. */
  inviteEnterpriseAdmin?: Maybe<InviteEnterpriseAdminPayload>;
  /** Links a project to a repository. */
  linkProjectV2ToRepository?: Maybe<LinkProjectV2ToRepositoryPayload>;
  /** Links a project to a team. */
  linkProjectV2ToTeam?: Maybe<LinkProjectV2ToTeamPayload>;
  /** Creates a repository link for a project. */
  linkRepositoryToProject?: Maybe<LinkRepositoryToProjectPayload>;
  /** Lock a lockable object */
  lockLockable?: Maybe<LockLockablePayload>;
  /** Mark a discussion comment as the chosen answer for discussions in an answerable category. */
  markDiscussionCommentAsAnswer?: Maybe<MarkDiscussionCommentAsAnswerPayload>;
  /** Mark a pull request file as viewed */
  markFileAsViewed?: Maybe<MarkFileAsViewedPayload>;
  /** Marks a pull request ready for review. */
  markPullRequestReadyForReview?: Maybe<MarkPullRequestReadyForReviewPayload>;
  /** Merge a head into a branch. */
  mergeBranch?: Maybe<MergeBranchPayload>;
  /** Merge a pull request. */
  mergePullRequest?: Maybe<MergePullRequestPayload>;
  /** Minimizes a comment on an Issue, Commit, Pull Request, or Gist */
  minimizeComment?: Maybe<MinimizeCommentPayload>;
  /** Moves a project card to another place. */
  moveProjectCard?: Maybe<MoveProjectCardPayload>;
  /** Moves a project column to another place. */
  moveProjectColumn?: Maybe<MoveProjectColumnPayload>;
  /** Pin an issue to a repository */
  pinIssue?: Maybe<PinIssuePayload>;
  /** Publish an existing sponsorship tier that is currently still a draft to a GitHub Sponsors profile. */
  publishSponsorsTier?: Maybe<PublishSponsorsTierPayload>;
  /** Regenerates the identity provider recovery codes for an enterprise */
  regenerateEnterpriseIdentityProviderRecoveryCodes?: Maybe<RegenerateEnterpriseIdentityProviderRecoveryCodesPayload>;
  /** Regenerates a verifiable domain's verification token. */
  regenerateVerifiableDomainToken?: Maybe<RegenerateVerifiableDomainTokenPayload>;
  /** Reject all pending deployments under one or more environments */
  rejectDeployments?: Maybe<RejectDeploymentsPayload>;
  /** Removes assignees from an assignable object. */
  removeAssigneesFromAssignable?: Maybe<RemoveAssigneesFromAssignablePayload>;
  /** Removes an administrator from the enterprise. */
  removeEnterpriseAdmin?: Maybe<RemoveEnterpriseAdminPayload>;
  /** Removes the identity provider from an enterprise */
  removeEnterpriseIdentityProvider?: Maybe<RemoveEnterpriseIdentityProviderPayload>;
  /** Removes a user from all organizations within the enterprise */
  removeEnterpriseMember?: Maybe<RemoveEnterpriseMemberPayload>;
  /** Removes an organization from the enterprise */
  removeEnterpriseOrganization?: Maybe<RemoveEnterpriseOrganizationPayload>;
  /** Removes a support entitlement from an enterprise member. */
  removeEnterpriseSupportEntitlement?: Maybe<RemoveEnterpriseSupportEntitlementPayload>;
  /** Removes labels from a Labelable object. */
  removeLabelsFromLabelable?: Maybe<RemoveLabelsFromLabelablePayload>;
  /** Removes outside collaborator from all repositories in an organization. */
  removeOutsideCollaborator?: Maybe<RemoveOutsideCollaboratorPayload>;
  /** Removes a reaction from a subject. */
  removeReaction?: Maybe<RemoveReactionPayload>;
  /** Removes a star from a Starrable. */
  removeStar?: Maybe<RemoveStarPayload>;
  /** Remove an upvote to a discussion or discussion comment. */
  removeUpvote?: Maybe<RemoveUpvotePayload>;
  /** Reopen a discussion. */
  reopenDiscussion?: Maybe<ReopenDiscussionPayload>;
  /** Reopen a issue. */
  reopenIssue?: Maybe<ReopenIssuePayload>;
  /** Reopen a pull request. */
  reopenPullRequest?: Maybe<ReopenPullRequestPayload>;
  /** Set review requests on a pull request. */
  requestReviews?: Maybe<RequestReviewsPayload>;
  /** Rerequests an existing check suite. */
  rerequestCheckSuite?: Maybe<RerequestCheckSuitePayload>;
  /** Marks a review thread as resolved. */
  resolveReviewThread?: Maybe<ResolveReviewThreadPayload>;
  /** Retire a published payment tier from your GitHub Sponsors profile so it cannot be used to start new sponsorships. */
  retireSponsorsTier?: Maybe<RetireSponsorsTierPayload>;
  /** Create a pull request that reverts the changes from a merged pull request. */
  revertPullRequest?: Maybe<RevertPullRequestPayload>;
  /** Revoke the migrator role to a user for all organizations under an enterprise account. */
  revokeEnterpriseOrganizationsMigratorRole?: Maybe<RevokeEnterpriseOrganizationsMigratorRolePayload>;
  /** Revoke the migrator role from a user or a team. */
  revokeMigratorRole?: Maybe<RevokeMigratorRolePayload>;
  /** Creates or updates the identity provider for an enterprise. */
  setEnterpriseIdentityProvider?: Maybe<SetEnterpriseIdentityProviderPayload>;
  /** Set an organization level interaction limit for an organization's public repositories. */
  setOrganizationInteractionLimit?: Maybe<SetOrganizationInteractionLimitPayload>;
  /** Sets an interaction limit setting for a repository. */
  setRepositoryInteractionLimit?: Maybe<SetRepositoryInteractionLimitPayload>;
  /** Set a user level interaction limit for an user's public repositories. */
  setUserInteractionLimit?: Maybe<SetUserInteractionLimitPayload>;
  /** Starts a GitHub Enterprise Importer organization migration. */
  startOrganizationMigration?: Maybe<StartOrganizationMigrationPayload>;
  /** Starts a GitHub Enterprise Importer (GEI) repository migration. */
  startRepositoryMigration?: Maybe<StartRepositoryMigrationPayload>;
  /** Submits a pending pull request review. */
  submitPullRequestReview?: Maybe<SubmitPullRequestReviewPayload>;
  /** Transfer an organization from one enterprise to another enterprise. */
  transferEnterpriseOrganization?: Maybe<TransferEnterpriseOrganizationPayload>;
  /** Transfer an issue to a different repository */
  transferIssue?: Maybe<TransferIssuePayload>;
  /** Unarchives a ProjectV2Item */
  unarchiveProjectV2Item?: Maybe<UnarchiveProjectV2ItemPayload>;
  /** Unarchives a repository. */
  unarchiveRepository?: Maybe<UnarchiveRepositoryPayload>;
  /** Unfollow an organization. */
  unfollowOrganization?: Maybe<UnfollowOrganizationPayload>;
  /** Unfollow a user. */
  unfollowUser?: Maybe<UnfollowUserPayload>;
  /** Unlinks a project from a repository. */
  unlinkProjectV2FromRepository?: Maybe<UnlinkProjectV2FromRepositoryPayload>;
  /** Unlinks a project to a team. */
  unlinkProjectV2FromTeam?: Maybe<UnlinkProjectV2FromTeamPayload>;
  /** Deletes a repository link from a project. */
  unlinkRepositoryFromProject?: Maybe<UnlinkRepositoryFromProjectPayload>;
  /** Unlock a lockable object */
  unlockLockable?: Maybe<UnlockLockablePayload>;
  /** Unmark a discussion comment as the chosen answer for discussions in an answerable category. */
  unmarkDiscussionCommentAsAnswer?: Maybe<UnmarkDiscussionCommentAsAnswerPayload>;
  /** Unmark a pull request file as viewed */
  unmarkFileAsViewed?: Maybe<UnmarkFileAsViewedPayload>;
  /** Unmark an issue as a duplicate of another issue. */
  unmarkIssueAsDuplicate?: Maybe<UnmarkIssueAsDuplicatePayload>;
  /** Unminimizes a comment on an Issue, Commit, Pull Request, or Gist */
  unminimizeComment?: Maybe<UnminimizeCommentPayload>;
  /** Unpin a pinned issue from a repository */
  unpinIssue?: Maybe<UnpinIssuePayload>;
  /** Marks a review thread as unresolved. */
  unresolveReviewThread?: Maybe<UnresolveReviewThreadPayload>;
  /** Update a branch protection rule */
  updateBranchProtectionRule?: Maybe<UpdateBranchProtectionRulePayload>;
  /** Update a check run */
  updateCheckRun?: Maybe<UpdateCheckRunPayload>;
  /** Modifies the settings of an existing check suite */
  updateCheckSuitePreferences?: Maybe<UpdateCheckSuitePreferencesPayload>;
  /** Update a discussion */
  updateDiscussion?: Maybe<UpdateDiscussionPayload>;
  /** Update the contents of a comment on a Discussion */
  updateDiscussionComment?: Maybe<UpdateDiscussionCommentPayload>;
  /** Updates the role of an enterprise administrator. */
  updateEnterpriseAdministratorRole?: Maybe<UpdateEnterpriseAdministratorRolePayload>;
  /** Sets whether private repository forks are enabled for an enterprise. */
  updateEnterpriseAllowPrivateRepositoryForkingSetting?: Maybe<UpdateEnterpriseAllowPrivateRepositoryForkingSettingPayload>;
  /** Sets the base repository permission for organizations in an enterprise. */
  updateEnterpriseDefaultRepositoryPermissionSetting?: Maybe<UpdateEnterpriseDefaultRepositoryPermissionSettingPayload>;
  /** Sets whether organization members with admin permissions on a repository can change repository visibility. */
  updateEnterpriseMembersCanChangeRepositoryVisibilitySetting?: Maybe<UpdateEnterpriseMembersCanChangeRepositoryVisibilitySettingPayload>;
  /** Sets the members can create repositories setting for an enterprise. */
  updateEnterpriseMembersCanCreateRepositoriesSetting?: Maybe<UpdateEnterpriseMembersCanCreateRepositoriesSettingPayload>;
  /** Sets the members can delete issues setting for an enterprise. */
  updateEnterpriseMembersCanDeleteIssuesSetting?: Maybe<UpdateEnterpriseMembersCanDeleteIssuesSettingPayload>;
  /** Sets the members can delete repositories setting for an enterprise. */
  updateEnterpriseMembersCanDeleteRepositoriesSetting?: Maybe<UpdateEnterpriseMembersCanDeleteRepositoriesSettingPayload>;
  /** Sets whether members can invite collaborators are enabled for an enterprise. */
  updateEnterpriseMembersCanInviteCollaboratorsSetting?: Maybe<UpdateEnterpriseMembersCanInviteCollaboratorsSettingPayload>;
  /** Sets whether or not an organization admin can make purchases. */
  updateEnterpriseMembersCanMakePurchasesSetting?: Maybe<UpdateEnterpriseMembersCanMakePurchasesSettingPayload>;
  /** Sets the members can update protected branches setting for an enterprise. */
  updateEnterpriseMembersCanUpdateProtectedBranchesSetting?: Maybe<UpdateEnterpriseMembersCanUpdateProtectedBranchesSettingPayload>;
  /** Sets the members can view dependency insights for an enterprise. */
  updateEnterpriseMembersCanViewDependencyInsightsSetting?: Maybe<UpdateEnterpriseMembersCanViewDependencyInsightsSettingPayload>;
  /** Sets whether organization projects are enabled for an enterprise. */
  updateEnterpriseOrganizationProjectsSetting?: Maybe<UpdateEnterpriseOrganizationProjectsSettingPayload>;
  /** Updates the role of an enterprise owner with an organization. */
  updateEnterpriseOwnerOrganizationRole?: Maybe<UpdateEnterpriseOwnerOrganizationRolePayload>;
  /** Updates an enterprise's profile. */
  updateEnterpriseProfile?: Maybe<UpdateEnterpriseProfilePayload>;
  /** Sets whether repository projects are enabled for a enterprise. */
  updateEnterpriseRepositoryProjectsSetting?: Maybe<UpdateEnterpriseRepositoryProjectsSettingPayload>;
  /** Sets whether team discussions are enabled for an enterprise. */
  updateEnterpriseTeamDiscussionsSetting?: Maybe<UpdateEnterpriseTeamDiscussionsSettingPayload>;
  /** Sets whether two factor authentication is required for all users in an enterprise. */
  updateEnterpriseTwoFactorAuthenticationRequiredSetting?: Maybe<UpdateEnterpriseTwoFactorAuthenticationRequiredSettingPayload>;
  /** Updates an environment. */
  updateEnvironment?: Maybe<UpdateEnvironmentPayload>;
  /** Sets whether an IP allow list is enabled on an owner. */
  updateIpAllowListEnabledSetting?: Maybe<UpdateIpAllowListEnabledSettingPayload>;
  /** Updates an IP allow list entry. */
  updateIpAllowListEntry?: Maybe<UpdateIpAllowListEntryPayload>;
  /** Sets whether IP allow list configuration for installed GitHub Apps is enabled on an owner. */
  updateIpAllowListForInstalledAppsEnabledSetting?: Maybe<UpdateIpAllowListForInstalledAppsEnabledSettingPayload>;
  /** Updates an Issue. */
  updateIssue?: Maybe<UpdateIssuePayload>;
  /** Updates an IssueComment object. */
  updateIssueComment?: Maybe<UpdateIssueCommentPayload>;
  /** Update the setting to restrict notifications to only verified or approved domains available to an owner. */
  updateNotificationRestrictionSetting?: Maybe<UpdateNotificationRestrictionSettingPayload>;
  /** Sets whether private repository forks are enabled for an organization. */
  updateOrganizationAllowPrivateRepositoryForkingSetting?: Maybe<UpdateOrganizationAllowPrivateRepositoryForkingSettingPayload>;
  /** Sets whether contributors are required to sign off on web-based commits for repositories in an organization. */
  updateOrganizationWebCommitSignoffSetting?: Maybe<UpdateOrganizationWebCommitSignoffSettingPayload>;
  /** Updates an existing project. */
  updateProject?: Maybe<UpdateProjectPayload>;
  /** Updates an existing project card. */
  updateProjectCard?: Maybe<UpdateProjectCardPayload>;
  /** Updates an existing project column. */
  updateProjectColumn?: Maybe<UpdateProjectColumnPayload>;
  /** Updates an existing project (beta). */
  updateProjectV2?: Maybe<UpdateProjectV2Payload>;
  /** Updates a draft issue within a Project. */
  updateProjectV2DraftIssue?: Maybe<UpdateProjectV2DraftIssuePayload>;
  /**
   * This mutation updates the value of a field for an item in a Project. Currently
   * only single-select, text, number, date, and iteration fields are supported.
   */
  updateProjectV2ItemFieldValue?: Maybe<UpdateProjectV2ItemFieldValuePayload>;
  /** This mutation updates the position of the item in the project, where the position represents the priority of an item. */
  updateProjectV2ItemPosition?: Maybe<UpdateProjectV2ItemPositionPayload>;
  /** Update a pull request */
  updatePullRequest?: Maybe<UpdatePullRequestPayload>;
  /** Merge or Rebase HEAD from upstream branch into pull request branch */
  updatePullRequestBranch?: Maybe<UpdatePullRequestBranchPayload>;
  /** Updates the body of a pull request review. */
  updatePullRequestReview?: Maybe<UpdatePullRequestReviewPayload>;
  /** Updates a pull request review comment. */
  updatePullRequestReviewComment?: Maybe<UpdatePullRequestReviewCommentPayload>;
  /** Update a Git Ref. */
  updateRef?: Maybe<UpdateRefPayload>;
  /** Update information about a repository. */
  updateRepository?: Maybe<UpdateRepositoryPayload>;
  /** Sets whether contributors are required to sign off on web-based commits for a repository. */
  updateRepositoryWebCommitSignoffSetting?: Maybe<UpdateRepositoryWebCommitSignoffSettingPayload>;
  /** Change visibility of your sponsorship and opt in or out of email updates from the maintainer. */
  updateSponsorshipPreferences?: Maybe<UpdateSponsorshipPreferencesPayload>;
  /** Updates the state for subscribable subjects. */
  updateSubscription?: Maybe<UpdateSubscriptionPayload>;
  /** Updates a team discussion. */
  updateTeamDiscussion?: Maybe<UpdateTeamDiscussionPayload>;
  /** Updates a discussion comment. */
  updateTeamDiscussionComment?: Maybe<UpdateTeamDiscussionCommentPayload>;
  /** Update team repository. */
  updateTeamsRepository?: Maybe<UpdateTeamsRepositoryPayload>;
  /** Replaces the repository's topics with the given topics. */
  updateTopics?: Maybe<UpdateTopicsPayload>;
  /** Verify that a verifiable domain has the expected DNS record. */
  verifyVerifiableDomain?: Maybe<VerifyVerifiableDomainPayload>;
};


/** The root query for implementing GraphQL mutations. */
export type MutationAbortQueuedMigrationsArgs = {
  input: AbortQueuedMigrationsInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationAcceptEnterpriseAdministratorInvitationArgs = {
  input: AcceptEnterpriseAdministratorInvitationInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationAcceptTopicSuggestionArgs = {
  input: AcceptTopicSuggestionInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationAddAssigneesToAssignableArgs = {
  input: AddAssigneesToAssignableInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationAddCommentArgs = {
  input: AddCommentInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationAddDiscussionCommentArgs = {
  input: AddDiscussionCommentInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationAddDiscussionPollVoteArgs = {
  input: AddDiscussionPollVoteInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationAddEnterpriseOrganizationMemberArgs = {
  input: AddEnterpriseOrganizationMemberInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationAddEnterpriseSupportEntitlementArgs = {
  input: AddEnterpriseSupportEntitlementInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationAddLabelsToLabelableArgs = {
  input: AddLabelsToLabelableInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationAddProjectCardArgs = {
  input: AddProjectCardInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationAddProjectColumnArgs = {
  input: AddProjectColumnInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationAddProjectV2DraftIssueArgs = {
  input: AddProjectV2DraftIssueInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationAddProjectV2ItemByIdArgs = {
  input: AddProjectV2ItemByIdInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationAddPullRequestReviewArgs = {
  input: AddPullRequestReviewInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationAddPullRequestReviewCommentArgs = {
  input: AddPullRequestReviewCommentInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationAddPullRequestReviewThreadArgs = {
  input: AddPullRequestReviewThreadInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationAddReactionArgs = {
  input: AddReactionInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationAddStarArgs = {
  input: AddStarInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationAddUpvoteArgs = {
  input: AddUpvoteInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationAddVerifiableDomainArgs = {
  input: AddVerifiableDomainInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationApproveDeploymentsArgs = {
  input: ApproveDeploymentsInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationApproveVerifiableDomainArgs = {
  input: ApproveVerifiableDomainInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationArchiveProjectV2ItemArgs = {
  input: ArchiveProjectV2ItemInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationArchiveRepositoryArgs = {
  input: ArchiveRepositoryInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationCancelEnterpriseAdminInvitationArgs = {
  input: CancelEnterpriseAdminInvitationInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationCancelSponsorshipArgs = {
  input: CancelSponsorshipInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationChangeUserStatusArgs = {
  input: ChangeUserStatusInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationClearLabelsFromLabelableArgs = {
  input: ClearLabelsFromLabelableInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationClearProjectV2ItemFieldValueArgs = {
  input: ClearProjectV2ItemFieldValueInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationCloneProjectArgs = {
  input: CloneProjectInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationCloneTemplateRepositoryArgs = {
  input: CloneTemplateRepositoryInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationCloseDiscussionArgs = {
  input: CloseDiscussionInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationCloseIssueArgs = {
  input: CloseIssueInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationClosePullRequestArgs = {
  input: ClosePullRequestInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationConvertProjectCardNoteToIssueArgs = {
  input: ConvertProjectCardNoteToIssueInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationConvertPullRequestToDraftArgs = {
  input: ConvertPullRequestToDraftInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationCopyProjectV2Args = {
  input: CopyProjectV2Input;
};


/** The root query for implementing GraphQL mutations. */
export type MutationCreateAttributionInvitationArgs = {
  input: CreateAttributionInvitationInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationCreateBranchProtectionRuleArgs = {
  input: CreateBranchProtectionRuleInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationCreateCheckRunArgs = {
  input: CreateCheckRunInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationCreateCheckSuiteArgs = {
  input: CreateCheckSuiteInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationCreateCommitOnBranchArgs = {
  input: CreateCommitOnBranchInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationCreateDiscussionArgs = {
  input: CreateDiscussionInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationCreateEnterpriseOrganizationArgs = {
  input: CreateEnterpriseOrganizationInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationCreateEnvironmentArgs = {
  input: CreateEnvironmentInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationCreateIpAllowListEntryArgs = {
  input: CreateIpAllowListEntryInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationCreateIssueArgs = {
  input: CreateIssueInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationCreateLinkedBranchArgs = {
  input: CreateLinkedBranchInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationCreateMigrationSourceArgs = {
  input: CreateMigrationSourceInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationCreateProjectArgs = {
  input: CreateProjectInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationCreateProjectV2Args = {
  input: CreateProjectV2Input;
};


/** The root query for implementing GraphQL mutations. */
export type MutationCreateProjectV2FieldArgs = {
  input: CreateProjectV2FieldInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationCreatePullRequestArgs = {
  input: CreatePullRequestInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationCreateRefArgs = {
  input: CreateRefInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationCreateRepositoryArgs = {
  input: CreateRepositoryInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationCreateSponsorsListingArgs = {
  input: CreateSponsorsListingInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationCreateSponsorsTierArgs = {
  input: CreateSponsorsTierInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationCreateSponsorshipArgs = {
  input: CreateSponsorshipInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationCreateTeamDiscussionArgs = {
  input: CreateTeamDiscussionInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationCreateTeamDiscussionCommentArgs = {
  input: CreateTeamDiscussionCommentInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationDeclineTopicSuggestionArgs = {
  input: DeclineTopicSuggestionInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationDeleteBranchProtectionRuleArgs = {
  input: DeleteBranchProtectionRuleInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationDeleteDeploymentArgs = {
  input: DeleteDeploymentInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationDeleteDiscussionArgs = {
  input: DeleteDiscussionInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationDeleteDiscussionCommentArgs = {
  input: DeleteDiscussionCommentInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationDeleteEnvironmentArgs = {
  input: DeleteEnvironmentInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationDeleteIpAllowListEntryArgs = {
  input: DeleteIpAllowListEntryInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationDeleteIssueArgs = {
  input: DeleteIssueInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationDeleteIssueCommentArgs = {
  input: DeleteIssueCommentInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationDeleteLinkedBranchArgs = {
  input: DeleteLinkedBranchInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationDeleteProjectArgs = {
  input: DeleteProjectInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationDeleteProjectCardArgs = {
  input: DeleteProjectCardInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationDeleteProjectColumnArgs = {
  input: DeleteProjectColumnInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationDeleteProjectV2Args = {
  input: DeleteProjectV2Input;
};


/** The root query for implementing GraphQL mutations. */
export type MutationDeleteProjectV2FieldArgs = {
  input: DeleteProjectV2FieldInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationDeleteProjectV2ItemArgs = {
  input: DeleteProjectV2ItemInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationDeleteProjectV2WorkflowArgs = {
  input: DeleteProjectV2WorkflowInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationDeletePullRequestReviewArgs = {
  input: DeletePullRequestReviewInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationDeletePullRequestReviewCommentArgs = {
  input: DeletePullRequestReviewCommentInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationDeleteRefArgs = {
  input: DeleteRefInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationDeleteTeamDiscussionArgs = {
  input: DeleteTeamDiscussionInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationDeleteTeamDiscussionCommentArgs = {
  input: DeleteTeamDiscussionCommentInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationDeleteVerifiableDomainArgs = {
  input: DeleteVerifiableDomainInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationDisablePullRequestAutoMergeArgs = {
  input: DisablePullRequestAutoMergeInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationDismissPullRequestReviewArgs = {
  input: DismissPullRequestReviewInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationDismissRepositoryVulnerabilityAlertArgs = {
  input: DismissRepositoryVulnerabilityAlertInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationEnablePullRequestAutoMergeArgs = {
  input: EnablePullRequestAutoMergeInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationFollowOrganizationArgs = {
  input: FollowOrganizationInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationFollowUserArgs = {
  input: FollowUserInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationGrantEnterpriseOrganizationsMigratorRoleArgs = {
  input: GrantEnterpriseOrganizationsMigratorRoleInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationGrantMigratorRoleArgs = {
  input: GrantMigratorRoleInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationInviteEnterpriseAdminArgs = {
  input: InviteEnterpriseAdminInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationLinkProjectV2ToRepositoryArgs = {
  input: LinkProjectV2ToRepositoryInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationLinkProjectV2ToTeamArgs = {
  input: LinkProjectV2ToTeamInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationLinkRepositoryToProjectArgs = {
  input: LinkRepositoryToProjectInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationLockLockableArgs = {
  input: LockLockableInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationMarkDiscussionCommentAsAnswerArgs = {
  input: MarkDiscussionCommentAsAnswerInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationMarkFileAsViewedArgs = {
  input: MarkFileAsViewedInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationMarkPullRequestReadyForReviewArgs = {
  input: MarkPullRequestReadyForReviewInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationMergeBranchArgs = {
  input: MergeBranchInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationMergePullRequestArgs = {
  input: MergePullRequestInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationMinimizeCommentArgs = {
  input: MinimizeCommentInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationMoveProjectCardArgs = {
  input: MoveProjectCardInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationMoveProjectColumnArgs = {
  input: MoveProjectColumnInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationPinIssueArgs = {
  input: PinIssueInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationPublishSponsorsTierArgs = {
  input: PublishSponsorsTierInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationRegenerateEnterpriseIdentityProviderRecoveryCodesArgs = {
  input: RegenerateEnterpriseIdentityProviderRecoveryCodesInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationRegenerateVerifiableDomainTokenArgs = {
  input: RegenerateVerifiableDomainTokenInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationRejectDeploymentsArgs = {
  input: RejectDeploymentsInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationRemoveAssigneesFromAssignableArgs = {
  input: RemoveAssigneesFromAssignableInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationRemoveEnterpriseAdminArgs = {
  input: RemoveEnterpriseAdminInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationRemoveEnterpriseIdentityProviderArgs = {
  input: RemoveEnterpriseIdentityProviderInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationRemoveEnterpriseMemberArgs = {
  input: RemoveEnterpriseMemberInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationRemoveEnterpriseOrganizationArgs = {
  input: RemoveEnterpriseOrganizationInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationRemoveEnterpriseSupportEntitlementArgs = {
  input: RemoveEnterpriseSupportEntitlementInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationRemoveLabelsFromLabelableArgs = {
  input: RemoveLabelsFromLabelableInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationRemoveOutsideCollaboratorArgs = {
  input: RemoveOutsideCollaboratorInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationRemoveReactionArgs = {
  input: RemoveReactionInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationRemoveStarArgs = {
  input: RemoveStarInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationRemoveUpvoteArgs = {
  input: RemoveUpvoteInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationReopenDiscussionArgs = {
  input: ReopenDiscussionInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationReopenIssueArgs = {
  input: ReopenIssueInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationReopenPullRequestArgs = {
  input: ReopenPullRequestInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationRequestReviewsArgs = {
  input: RequestReviewsInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationRerequestCheckSuiteArgs = {
  input: RerequestCheckSuiteInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationResolveReviewThreadArgs = {
  input: ResolveReviewThreadInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationRetireSponsorsTierArgs = {
  input: RetireSponsorsTierInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationRevertPullRequestArgs = {
  input: RevertPullRequestInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationRevokeEnterpriseOrganizationsMigratorRoleArgs = {
  input: RevokeEnterpriseOrganizationsMigratorRoleInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationRevokeMigratorRoleArgs = {
  input: RevokeMigratorRoleInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationSetEnterpriseIdentityProviderArgs = {
  input: SetEnterpriseIdentityProviderInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationSetOrganizationInteractionLimitArgs = {
  input: SetOrganizationInteractionLimitInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationSetRepositoryInteractionLimitArgs = {
  input: SetRepositoryInteractionLimitInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationSetUserInteractionLimitArgs = {
  input: SetUserInteractionLimitInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationStartOrganizationMigrationArgs = {
  input: StartOrganizationMigrationInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationStartRepositoryMigrationArgs = {
  input: StartRepositoryMigrationInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationSubmitPullRequestReviewArgs = {
  input: SubmitPullRequestReviewInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationTransferEnterpriseOrganizationArgs = {
  input: TransferEnterpriseOrganizationInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationTransferIssueArgs = {
  input: TransferIssueInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUnarchiveProjectV2ItemArgs = {
  input: UnarchiveProjectV2ItemInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUnarchiveRepositoryArgs = {
  input: UnarchiveRepositoryInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUnfollowOrganizationArgs = {
  input: UnfollowOrganizationInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUnfollowUserArgs = {
  input: UnfollowUserInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUnlinkProjectV2FromRepositoryArgs = {
  input: UnlinkProjectV2FromRepositoryInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUnlinkProjectV2FromTeamArgs = {
  input: UnlinkProjectV2FromTeamInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUnlinkRepositoryFromProjectArgs = {
  input: UnlinkRepositoryFromProjectInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUnlockLockableArgs = {
  input: UnlockLockableInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUnmarkDiscussionCommentAsAnswerArgs = {
  input: UnmarkDiscussionCommentAsAnswerInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUnmarkFileAsViewedArgs = {
  input: UnmarkFileAsViewedInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUnmarkIssueAsDuplicateArgs = {
  input: UnmarkIssueAsDuplicateInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUnminimizeCommentArgs = {
  input: UnminimizeCommentInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUnpinIssueArgs = {
  input: UnpinIssueInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUnresolveReviewThreadArgs = {
  input: UnresolveReviewThreadInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateBranchProtectionRuleArgs = {
  input: UpdateBranchProtectionRuleInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateCheckRunArgs = {
  input: UpdateCheckRunInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateCheckSuitePreferencesArgs = {
  input: UpdateCheckSuitePreferencesInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateDiscussionArgs = {
  input: UpdateDiscussionInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateDiscussionCommentArgs = {
  input: UpdateDiscussionCommentInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateEnterpriseAdministratorRoleArgs = {
  input: UpdateEnterpriseAdministratorRoleInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateEnterpriseAllowPrivateRepositoryForkingSettingArgs = {
  input: UpdateEnterpriseAllowPrivateRepositoryForkingSettingInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateEnterpriseDefaultRepositoryPermissionSettingArgs = {
  input: UpdateEnterpriseDefaultRepositoryPermissionSettingInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateEnterpriseMembersCanChangeRepositoryVisibilitySettingArgs = {
  input: UpdateEnterpriseMembersCanChangeRepositoryVisibilitySettingInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateEnterpriseMembersCanCreateRepositoriesSettingArgs = {
  input: UpdateEnterpriseMembersCanCreateRepositoriesSettingInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateEnterpriseMembersCanDeleteIssuesSettingArgs = {
  input: UpdateEnterpriseMembersCanDeleteIssuesSettingInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateEnterpriseMembersCanDeleteRepositoriesSettingArgs = {
  input: UpdateEnterpriseMembersCanDeleteRepositoriesSettingInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateEnterpriseMembersCanInviteCollaboratorsSettingArgs = {
  input: UpdateEnterpriseMembersCanInviteCollaboratorsSettingInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateEnterpriseMembersCanMakePurchasesSettingArgs = {
  input: UpdateEnterpriseMembersCanMakePurchasesSettingInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateEnterpriseMembersCanUpdateProtectedBranchesSettingArgs = {
  input: UpdateEnterpriseMembersCanUpdateProtectedBranchesSettingInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateEnterpriseMembersCanViewDependencyInsightsSettingArgs = {
  input: UpdateEnterpriseMembersCanViewDependencyInsightsSettingInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateEnterpriseOrganizationProjectsSettingArgs = {
  input: UpdateEnterpriseOrganizationProjectsSettingInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateEnterpriseOwnerOrganizationRoleArgs = {
  input: UpdateEnterpriseOwnerOrganizationRoleInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateEnterpriseProfileArgs = {
  input: UpdateEnterpriseProfileInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateEnterpriseRepositoryProjectsSettingArgs = {
  input: UpdateEnterpriseRepositoryProjectsSettingInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateEnterpriseTeamDiscussionsSettingArgs = {
  input: UpdateEnterpriseTeamDiscussionsSettingInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateEnterpriseTwoFactorAuthenticationRequiredSettingArgs = {
  input: UpdateEnterpriseTwoFactorAuthenticationRequiredSettingInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateEnvironmentArgs = {
  input: UpdateEnvironmentInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateIpAllowListEnabledSettingArgs = {
  input: UpdateIpAllowListEnabledSettingInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateIpAllowListEntryArgs = {
  input: UpdateIpAllowListEntryInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateIpAllowListForInstalledAppsEnabledSettingArgs = {
  input: UpdateIpAllowListForInstalledAppsEnabledSettingInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateIssueArgs = {
  input: UpdateIssueInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateIssueCommentArgs = {
  input: UpdateIssueCommentInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateNotificationRestrictionSettingArgs = {
  input: UpdateNotificationRestrictionSettingInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateOrganizationAllowPrivateRepositoryForkingSettingArgs = {
  input: UpdateOrganizationAllowPrivateRepositoryForkingSettingInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateOrganizationWebCommitSignoffSettingArgs = {
  input: UpdateOrganizationWebCommitSignoffSettingInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateProjectArgs = {
  input: UpdateProjectInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateProjectCardArgs = {
  input: UpdateProjectCardInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateProjectColumnArgs = {
  input: UpdateProjectColumnInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateProjectV2Args = {
  input: UpdateProjectV2Input;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateProjectV2DraftIssueArgs = {
  input: UpdateProjectV2DraftIssueInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateProjectV2ItemFieldValueArgs = {
  input: UpdateProjectV2ItemFieldValueInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateProjectV2ItemPositionArgs = {
  input: UpdateProjectV2ItemPositionInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdatePullRequestArgs = {
  input: UpdatePullRequestInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdatePullRequestBranchArgs = {
  input: UpdatePullRequestBranchInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdatePullRequestReviewArgs = {
  input: UpdatePullRequestReviewInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdatePullRequestReviewCommentArgs = {
  input: UpdatePullRequestReviewCommentInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateRefArgs = {
  input: UpdateRefInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateRepositoryArgs = {
  input: UpdateRepositoryInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateRepositoryWebCommitSignoffSettingArgs = {
  input: UpdateRepositoryWebCommitSignoffSettingInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateSponsorshipPreferencesArgs = {
  input: UpdateSponsorshipPreferencesInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateSubscriptionArgs = {
  input: UpdateSubscriptionInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateTeamDiscussionArgs = {
  input: UpdateTeamDiscussionInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateTeamDiscussionCommentArgs = {
  input: UpdateTeamDiscussionCommentInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateTeamsRepositoryArgs = {
  input: UpdateTeamsRepositoryInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationUpdateTopicsArgs = {
  input: UpdateTopicsInput;
};


/** The root query for implementing GraphQL mutations. */
export type MutationVerifyVerifiableDomainArgs = {
  input: VerifyVerifiableDomainInput;
};

/** An object with an ID. */
export type Node = {
  /** ID of the object. */
  id: Scalars['ID'];
};

/** The possible values for the notification restriction setting. */
export type NotificationRestrictionSettingValue =
  /** The setting is disabled for the owner. */
  | 'DISABLED'
  /** The setting is enabled for the owner. */
  | 'ENABLED';

/** An OIDC identity provider configured to provision identities for an enterprise. */
export type OidcProvider = Node & {
  __typename?: 'OIDCProvider';
  /** The enterprise this identity provider belongs to. */
  enterprise?: Maybe<Enterprise>;
  /** ExternalIdentities provisioned by this identity provider. */
  externalIdentities: ExternalIdentityConnection;
  id: Scalars['ID'];
  /** The OIDC identity provider type */
  providerType: OidcProviderType;
  /** The id of the tenant this provider is attached to */
  tenantId: Scalars['String'];
};


/** An OIDC identity provider configured to provision identities for an enterprise. */
export type OidcProviderExternalIdentitiesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  login?: InputMaybe<Scalars['String']>;
  membersOnly?: InputMaybe<Scalars['Boolean']>;
  userName?: InputMaybe<Scalars['String']>;
};

/** The OIDC identity provider type */
export type OidcProviderType =
  /** Azure Active Directory */
  | 'AAD';

/** Metadata for an audit entry with action oauth_application.* */
export type OauthApplicationAuditEntryData = {
  /** The name of the OAuth Application. */
  oauthApplicationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the OAuth Application */
  oauthApplicationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the OAuth Application */
  oauthApplicationUrl?: Maybe<Scalars['URI']>;
};

/** Audit log entry for a oauth_application.create event. */
export type OauthApplicationCreateAuditEntry = AuditEntry & Node & OauthApplicationAuditEntryData & OrganizationAuditEntryData & {
  __typename?: 'OauthApplicationCreateAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The application URL of the OAuth Application. */
  applicationUrl?: Maybe<Scalars['URI']>;
  /** The callback URL of the OAuth Application. */
  callbackUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** The name of the OAuth Application. */
  oauthApplicationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the OAuth Application */
  oauthApplicationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the OAuth Application */
  oauthApplicationUrl?: Maybe<Scalars['URI']>;
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The rate limit of the OAuth Application. */
  rateLimit?: Maybe<Scalars['Int']>;
  /** The state of the OAuth Application. */
  state?: Maybe<OauthApplicationCreateAuditEntryState>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** The state of an OAuth Application when it was created. */
export type OauthApplicationCreateAuditEntryState =
  /** The OAuth Application was active and allowed to have OAuth Accesses. */
  | 'ACTIVE'
  /** The OAuth Application was in the process of being deleted. */
  | 'PENDING_DELETION'
  /** The OAuth Application was suspended from generating OAuth Accesses due to abuse or security concerns. */
  | 'SUSPENDED';

/** The corresponding operation type for the action */
export type OperationType =
  /** An existing resource was accessed */
  | 'ACCESS'
  /** A resource performed an authentication event */
  | 'AUTHENTICATION'
  /** A new resource was created */
  | 'CREATE'
  /** An existing resource was modified */
  | 'MODIFY'
  /** An existing resource was removed */
  | 'REMOVE'
  /** An existing resource was restored */
  | 'RESTORE'
  /** An existing resource was transferred between multiple resources */
  | 'TRANSFER';

/** Possible directions in which to order a list of items when provided an `orderBy` argument. */
export type OrderDirection =
  /** Specifies an ascending order for a given `orderBy` argument. */
  | 'ASC'
  /** Specifies a descending order for a given `orderBy` argument. */
  | 'DESC';

/** Audit log entry for a org.add_billing_manager */
export type OrgAddBillingManagerAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & {
  __typename?: 'OrgAddBillingManagerAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** The email address used to invite a billing manager for the organization. */
  invitationEmail?: Maybe<Scalars['String']>;
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** Audit log entry for a org.add_member */
export type OrgAddMemberAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & {
  __typename?: 'OrgAddMemberAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The permission level of the member added to the organization. */
  permission?: Maybe<OrgAddMemberAuditEntryPermission>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** The permissions available to members on an Organization. */
export type OrgAddMemberAuditEntryPermission =
  /** Can read, clone, push, and add collaborators to repositories. */
  | 'ADMIN'
  /** Can read and clone repositories. */
  | 'READ';

/** Audit log entry for a org.block_user */
export type OrgBlockUserAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & {
  __typename?: 'OrgBlockUserAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The blocked user. */
  blockedUser?: Maybe<User>;
  /** The username of the blocked user. */
  blockedUserName?: Maybe<Scalars['String']>;
  /** The HTTP path for the blocked user. */
  blockedUserResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the blocked user. */
  blockedUserUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** Audit log entry for a org.config.disable_collaborators_only event. */
export type OrgConfigDisableCollaboratorsOnlyAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & {
  __typename?: 'OrgConfigDisableCollaboratorsOnlyAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** Audit log entry for a org.config.enable_collaborators_only event. */
export type OrgConfigEnableCollaboratorsOnlyAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & {
  __typename?: 'OrgConfigEnableCollaboratorsOnlyAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** Audit log entry for a org.create event. */
export type OrgCreateAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & {
  __typename?: 'OrgCreateAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The billing plan for the Organization. */
  billingPlan?: Maybe<OrgCreateAuditEntryBillingPlan>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** The billing plans available for organizations. */
export type OrgCreateAuditEntryBillingPlan =
  /** Team Plan */
  | 'BUSINESS'
  /** Enterprise Cloud Plan */
  | 'BUSINESS_PLUS'
  /** Free Plan */
  | 'FREE'
  /** Tiered Per Seat Plan */
  | 'TIERED_PER_SEAT'
  /** Legacy Unlimited Plan */
  | 'UNLIMITED';

/** Audit log entry for a org.disable_oauth_app_restrictions event. */
export type OrgDisableOauthAppRestrictionsAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & {
  __typename?: 'OrgDisableOauthAppRestrictionsAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** Audit log entry for a org.disable_saml event. */
export type OrgDisableSamlAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & {
  __typename?: 'OrgDisableSamlAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  /** The SAML provider's digest algorithm URL. */
  digestMethodUrl?: Maybe<Scalars['URI']>;
  id: Scalars['ID'];
  /** The SAML provider's issuer URL. */
  issuerUrl?: Maybe<Scalars['URI']>;
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The SAML provider's signature algorithm URL. */
  signatureMethodUrl?: Maybe<Scalars['URI']>;
  /** The SAML provider's single sign-on URL. */
  singleSignOnUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** Audit log entry for a org.disable_two_factor_requirement event. */
export type OrgDisableTwoFactorRequirementAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & {
  __typename?: 'OrgDisableTwoFactorRequirementAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** Audit log entry for a org.enable_oauth_app_restrictions event. */
export type OrgEnableOauthAppRestrictionsAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & {
  __typename?: 'OrgEnableOauthAppRestrictionsAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** Audit log entry for a org.enable_saml event. */
export type OrgEnableSamlAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & {
  __typename?: 'OrgEnableSamlAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  /** The SAML provider's digest algorithm URL. */
  digestMethodUrl?: Maybe<Scalars['URI']>;
  id: Scalars['ID'];
  /** The SAML provider's issuer URL. */
  issuerUrl?: Maybe<Scalars['URI']>;
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The SAML provider's signature algorithm URL. */
  signatureMethodUrl?: Maybe<Scalars['URI']>;
  /** The SAML provider's single sign-on URL. */
  singleSignOnUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** Audit log entry for a org.enable_two_factor_requirement event. */
export type OrgEnableTwoFactorRequirementAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & {
  __typename?: 'OrgEnableTwoFactorRequirementAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** Ordering options for an organization's enterprise owner connections. */
export type OrgEnterpriseOwnerOrder = {
  /** The ordering direction. */
  direction: OrderDirection;
  /** The field to order enterprise owners by. */
  field: OrgEnterpriseOwnerOrderField;
};

/** Properties by which enterprise owners can be ordered. */
export type OrgEnterpriseOwnerOrderField =
  /** Order enterprise owners by login. */
  | 'LOGIN';

/** Audit log entry for a org.invite_member event. */
export type OrgInviteMemberAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & {
  __typename?: 'OrgInviteMemberAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  /** The email address of the organization invitation. */
  email?: Maybe<Scalars['String']>;
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The organization invitation. */
  organizationInvitation?: Maybe<OrganizationInvitation>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** Audit log entry for a org.invite_to_business event. */
export type OrgInviteToBusinessAuditEntry = AuditEntry & EnterpriseAuditEntryData & Node & OrganizationAuditEntryData & {
  __typename?: 'OrgInviteToBusinessAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  /** The HTTP path for this enterprise. */
  enterpriseResourcePath?: Maybe<Scalars['URI']>;
  /** The slug of the enterprise. */
  enterpriseSlug?: Maybe<Scalars['String']>;
  /** The HTTP URL for this enterprise. */
  enterpriseUrl?: Maybe<Scalars['URI']>;
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** Audit log entry for a org.oauth_app_access_approved event. */
export type OrgOauthAppAccessApprovedAuditEntry = AuditEntry & Node & OauthApplicationAuditEntryData & OrganizationAuditEntryData & {
  __typename?: 'OrgOauthAppAccessApprovedAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** The name of the OAuth Application. */
  oauthApplicationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the OAuth Application */
  oauthApplicationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the OAuth Application */
  oauthApplicationUrl?: Maybe<Scalars['URI']>;
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** Audit log entry for a org.oauth_app_access_denied event. */
export type OrgOauthAppAccessDeniedAuditEntry = AuditEntry & Node & OauthApplicationAuditEntryData & OrganizationAuditEntryData & {
  __typename?: 'OrgOauthAppAccessDeniedAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** The name of the OAuth Application. */
  oauthApplicationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the OAuth Application */
  oauthApplicationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the OAuth Application */
  oauthApplicationUrl?: Maybe<Scalars['URI']>;
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** Audit log entry for a org.oauth_app_access_requested event. */
export type OrgOauthAppAccessRequestedAuditEntry = AuditEntry & Node & OauthApplicationAuditEntryData & OrganizationAuditEntryData & {
  __typename?: 'OrgOauthAppAccessRequestedAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** The name of the OAuth Application. */
  oauthApplicationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the OAuth Application */
  oauthApplicationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the OAuth Application */
  oauthApplicationUrl?: Maybe<Scalars['URI']>;
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** Audit log entry for a org.remove_billing_manager event. */
export type OrgRemoveBillingManagerAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & {
  __typename?: 'OrgRemoveBillingManagerAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The reason for the billing manager being removed. */
  reason?: Maybe<OrgRemoveBillingManagerAuditEntryReason>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** The reason a billing manager was removed from an Organization. */
export type OrgRemoveBillingManagerAuditEntryReason =
  /** SAML external identity missing */
  | 'SAML_EXTERNAL_IDENTITY_MISSING'
  /** SAML SSO enforcement requires an external identity */
  | 'SAML_SSO_ENFORCEMENT_REQUIRES_EXTERNAL_IDENTITY'
  /** The organization required 2FA of its billing managers and this user did not have 2FA enabled. */
  | 'TWO_FACTOR_REQUIREMENT_NON_COMPLIANCE';

/** Audit log entry for a org.remove_member event. */
export type OrgRemoveMemberAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & {
  __typename?: 'OrgRemoveMemberAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** The types of membership the member has with the organization. */
  membershipTypes?: Maybe<Array<OrgRemoveMemberAuditEntryMembershipType>>;
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The reason for the member being removed. */
  reason?: Maybe<OrgRemoveMemberAuditEntryReason>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** The type of membership a user has with an Organization. */
export type OrgRemoveMemberAuditEntryMembershipType =
  /**
   * Organization administrators have full access and can change several settings,
   * including the names of repositories that belong to the Organization and Owners
   * team membership. In addition, organization admins can delete the organization
   * and all of its repositories.
   */
  | 'ADMIN'
  /** A billing manager is a user who manages the billing settings for the Organization, such as updating payment information. */
  | 'BILLING_MANAGER'
  /** A direct member is a user that is a member of the Organization. */
  | 'DIRECT_MEMBER'
  /**
   * An outside collaborator is a person who isn't explicitly a member of the
   * Organization, but who has Read, Write, or Admin permissions to one or more
   * repositories in the organization.
   */
  | 'OUTSIDE_COLLABORATOR'
  /** A suspended member. */
  | 'SUSPENDED'
  /**
   * An unaffiliated collaborator is a person who is not a member of the
   * Organization and does not have access to any repositories in the Organization.
   */
  | 'UNAFFILIATED';

/** The reason a member was removed from an Organization. */
export type OrgRemoveMemberAuditEntryReason =
  /** SAML external identity missing */
  | 'SAML_EXTERNAL_IDENTITY_MISSING'
  /** SAML SSO enforcement requires an external identity */
  | 'SAML_SSO_ENFORCEMENT_REQUIRES_EXTERNAL_IDENTITY'
  /** User was removed from organization during account recovery */
  | 'TWO_FACTOR_ACCOUNT_RECOVERY'
  /** The organization required 2FA of its billing managers and this user did not have 2FA enabled. */
  | 'TWO_FACTOR_REQUIREMENT_NON_COMPLIANCE'
  /** User account has been deleted */
  | 'USER_ACCOUNT_DELETED';

/** Audit log entry for a org.remove_outside_collaborator event. */
export type OrgRemoveOutsideCollaboratorAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & {
  __typename?: 'OrgRemoveOutsideCollaboratorAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** The types of membership the outside collaborator has with the organization. */
  membershipTypes?: Maybe<Array<OrgRemoveOutsideCollaboratorAuditEntryMembershipType>>;
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The reason for the outside collaborator being removed from the Organization. */
  reason?: Maybe<OrgRemoveOutsideCollaboratorAuditEntryReason>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** The type of membership a user has with an Organization. */
export type OrgRemoveOutsideCollaboratorAuditEntryMembershipType =
  /** A billing manager is a user who manages the billing settings for the Organization, such as updating payment information. */
  | 'BILLING_MANAGER'
  /**
   * An outside collaborator is a person who isn't explicitly a member of the
   * Organization, but who has Read, Write, or Admin permissions to one or more
   * repositories in the organization.
   */
  | 'OUTSIDE_COLLABORATOR'
  /**
   * An unaffiliated collaborator is a person who is not a member of the
   * Organization and does not have access to any repositories in the organization.
   */
  | 'UNAFFILIATED';

/** The reason an outside collaborator was removed from an Organization. */
export type OrgRemoveOutsideCollaboratorAuditEntryReason =
  /** SAML external identity missing */
  | 'SAML_EXTERNAL_IDENTITY_MISSING'
  /** The organization required 2FA of its billing managers and this user did not have 2FA enabled. */
  | 'TWO_FACTOR_REQUIREMENT_NON_COMPLIANCE';

/** Audit log entry for a org.restore_member event. */
export type OrgRestoreMemberAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & {
  __typename?: 'OrgRestoreMemberAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The number of custom email routings for the restored member. */
  restoredCustomEmailRoutingsCount?: Maybe<Scalars['Int']>;
  /** The number of issue assignments for the restored member. */
  restoredIssueAssignmentsCount?: Maybe<Scalars['Int']>;
  /** Restored organization membership objects. */
  restoredMemberships?: Maybe<Array<OrgRestoreMemberAuditEntryMembership>>;
  /** The number of restored memberships. */
  restoredMembershipsCount?: Maybe<Scalars['Int']>;
  /** The number of repositories of the restored member. */
  restoredRepositoriesCount?: Maybe<Scalars['Int']>;
  /** The number of starred repositories for the restored member. */
  restoredRepositoryStarsCount?: Maybe<Scalars['Int']>;
  /** The number of watched repositories for the restored member. */
  restoredRepositoryWatchesCount?: Maybe<Scalars['Int']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** Types of memberships that can be restored for an Organization member. */
export type OrgRestoreMemberAuditEntryMembership = OrgRestoreMemberMembershipOrganizationAuditEntryData | OrgRestoreMemberMembershipRepositoryAuditEntryData | OrgRestoreMemberMembershipTeamAuditEntryData;

/** Metadata for an organization membership for org.restore_member actions */
export type OrgRestoreMemberMembershipOrganizationAuditEntryData = OrganizationAuditEntryData & {
  __typename?: 'OrgRestoreMemberMembershipOrganizationAuditEntryData';
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
};

/** Metadata for a repository membership for org.restore_member actions */
export type OrgRestoreMemberMembershipRepositoryAuditEntryData = RepositoryAuditEntryData & {
  __typename?: 'OrgRestoreMemberMembershipRepositoryAuditEntryData';
  /** The repository associated with the action */
  repository?: Maybe<Repository>;
  /** The name of the repository */
  repositoryName?: Maybe<Scalars['String']>;
  /** The HTTP path for the repository */
  repositoryResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the repository */
  repositoryUrl?: Maybe<Scalars['URI']>;
};

/** Metadata for a team membership for org.restore_member actions */
export type OrgRestoreMemberMembershipTeamAuditEntryData = TeamAuditEntryData & {
  __typename?: 'OrgRestoreMemberMembershipTeamAuditEntryData';
  /** The team associated with the action */
  team?: Maybe<Team>;
  /** The name of the team */
  teamName?: Maybe<Scalars['String']>;
  /** The HTTP path for this team */
  teamResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for this team */
  teamUrl?: Maybe<Scalars['URI']>;
};

/** Audit log entry for a org.unblock_user */
export type OrgUnblockUserAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & {
  __typename?: 'OrgUnblockUserAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The user being unblocked by the organization. */
  blockedUser?: Maybe<User>;
  /** The username of the blocked user. */
  blockedUserName?: Maybe<Scalars['String']>;
  /** The HTTP path for the blocked user. */
  blockedUserResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the blocked user. */
  blockedUserUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** Audit log entry for a org.update_default_repository_permission */
export type OrgUpdateDefaultRepositoryPermissionAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & {
  __typename?: 'OrgUpdateDefaultRepositoryPermissionAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The new base repository permission level for the organization. */
  permission?: Maybe<OrgUpdateDefaultRepositoryPermissionAuditEntryPermission>;
  /** The former base repository permission level for the organization. */
  permissionWas?: Maybe<OrgUpdateDefaultRepositoryPermissionAuditEntryPermission>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** The default permission a repository can have in an Organization. */
export type OrgUpdateDefaultRepositoryPermissionAuditEntryPermission =
  /** Can read, clone, push, and add collaborators to repositories. */
  | 'ADMIN'
  /** No default permission value. */
  | 'NONE'
  /** Can read and clone repositories. */
  | 'READ'
  /** Can read, clone and push to repositories. */
  | 'WRITE';

/** Audit log entry for a org.update_member event. */
export type OrgUpdateMemberAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & {
  __typename?: 'OrgUpdateMemberAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The new member permission level for the organization. */
  permission?: Maybe<OrgUpdateMemberAuditEntryPermission>;
  /** The former member permission level for the organization. */
  permissionWas?: Maybe<OrgUpdateMemberAuditEntryPermission>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** The permissions available to members on an Organization. */
export type OrgUpdateMemberAuditEntryPermission =
  /** Can read, clone, push, and add collaborators to repositories. */
  | 'ADMIN'
  /** Can read and clone repositories. */
  | 'READ';

/** Audit log entry for a org.update_member_repository_creation_permission event. */
export type OrgUpdateMemberRepositoryCreationPermissionAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & {
  __typename?: 'OrgUpdateMemberRepositoryCreationPermissionAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** Can members create repositories in the organization. */
  canCreateRepositories?: Maybe<Scalars['Boolean']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
  /** The permission for visibility level of repositories for this organization. */
  visibility?: Maybe<OrgUpdateMemberRepositoryCreationPermissionAuditEntryVisibility>;
};

/** The permissions available for repository creation on an Organization. */
export type OrgUpdateMemberRepositoryCreationPermissionAuditEntryVisibility =
  /** All organization members are restricted from creating any repositories. */
  | 'ALL'
  /** All organization members are restricted from creating internal repositories. */
  | 'INTERNAL'
  /** All organization members are allowed to create any repositories. */
  | 'NONE'
  /** All organization members are restricted from creating private repositories. */
  | 'PRIVATE'
  /** All organization members are restricted from creating private or internal repositories. */
  | 'PRIVATE_INTERNAL'
  /** All organization members are restricted from creating public repositories. */
  | 'PUBLIC'
  /** All organization members are restricted from creating public or internal repositories. */
  | 'PUBLIC_INTERNAL'
  /** All organization members are restricted from creating public or private repositories. */
  | 'PUBLIC_PRIVATE';

/** Audit log entry for a org.update_member_repository_invitation_permission event. */
export type OrgUpdateMemberRepositoryInvitationPermissionAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & {
  __typename?: 'OrgUpdateMemberRepositoryInvitationPermissionAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** Can outside collaborators be invited to repositories in the organization. */
  canInviteOutsideCollaboratorsToRepositories?: Maybe<Scalars['Boolean']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** An account on GitHub, with one or more owners, that has repositories, members and teams. */
export type Organization = Actor & AnnouncementBanner & MemberStatusable & Node & PackageOwner & ProfileOwner & ProjectOwner & ProjectV2Owner & ProjectV2Recent & RepositoryDiscussionAuthor & RepositoryDiscussionCommentAuthor & RepositoryOwner & Sponsorable & UniformResourceLocatable & {
  __typename?: 'Organization';
  /** The text of the announcement */
  announcement?: Maybe<Scalars['String']>;
  /** The expiration date of the announcement, if any */
  announcementExpiresAt?: Maybe<Scalars['DateTime']>;
  /** Whether the announcement can be dismissed by the user */
  announcementUserDismissible?: Maybe<Scalars['Boolean']>;
  /** Determine if this repository owner has any items that can be pinned to their profile. */
  anyPinnableItems: Scalars['Boolean'];
  /** Audit log entries of the organization */
  auditLog: OrganizationAuditEntryConnection;
  /** A URL pointing to the organization's public avatar. */
  avatarUrl: Scalars['URI'];
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** The organization's public profile description. */
  description?: Maybe<Scalars['String']>;
  /** The organization's public profile description rendered to HTML. */
  descriptionHTML?: Maybe<Scalars['String']>;
  /** A list of domains owned by the organization. */
  domains?: Maybe<VerifiableDomainConnection>;
  /** The organization's public email. */
  email?: Maybe<Scalars['String']>;
  /** A list of owners of the organization's enterprise account. */
  enterpriseOwners: OrganizationEnterpriseOwnerConnection;
  /** The estimated next GitHub Sponsors payout for this user/organization in cents (USD). */
  estimatedNextSponsorsPayoutInCents: Scalars['Int'];
  /** True if this user/organization has a GitHub Sponsors listing. */
  hasSponsorsListing: Scalars['Boolean'];
  id: Scalars['ID'];
  /** The interaction ability settings for this organization. */
  interactionAbility?: Maybe<RepositoryInteractionAbility>;
  /** The setting value for whether the organization has an IP allow list enabled. */
  ipAllowListEnabledSetting: IpAllowListEnabledSettingValue;
  /** The IP addresses that are allowed to access resources owned by the organization. */
  ipAllowListEntries: IpAllowListEntryConnection;
  /** The setting value for whether the organization has IP allow list configuration for installed GitHub Apps enabled. */
  ipAllowListForInstalledAppsEnabledSetting: IpAllowListForInstalledAppsEnabledSettingValue;
  /** Whether the given account is sponsoring this user/organization. */
  isSponsoredBy: Scalars['Boolean'];
  /** True if the viewer is sponsored by this user/organization. */
  isSponsoringViewer: Scalars['Boolean'];
  /** Whether the organization has verified its profile email and website. */
  isVerified: Scalars['Boolean'];
  /**
   * Showcases a selection of repositories and gists that the profile owner has
   * either curated or that have been selected automatically based on popularity.
   */
  itemShowcase: ProfileItemShowcase;
  /** The organization's public profile location. */
  location?: Maybe<Scalars['String']>;
  /** The organization's login name. */
  login: Scalars['String'];
  /** A list of all mannequins for this organization. */
  mannequins: MannequinConnection;
  /** Get the status messages members of this entity have set that are either public or visible only to the organization. */
  memberStatuses: UserStatusConnection;
  /** Members can fork private repositories in this organization */
  membersCanForkPrivateRepositories: Scalars['Boolean'];
  /** A list of users who are members of this organization. */
  membersWithRole: OrganizationMemberConnection;
  /** The estimated monthly GitHub Sponsors income for this user/organization in cents (USD). */
  monthlyEstimatedSponsorsIncomeInCents: Scalars['Int'];
  /** The organization's public profile name. */
  name?: Maybe<Scalars['String']>;
  /** The HTTP path creating a new team */
  newTeamResourcePath: Scalars['URI'];
  /** The HTTP URL creating a new team */
  newTeamUrl: Scalars['URI'];
  /** Indicates if email notification delivery for this organization is restricted to verified or approved domains. */
  notificationDeliveryRestrictionEnabledSetting: NotificationRestrictionSettingValue;
  /** The billing email for the organization. */
  organizationBillingEmail?: Maybe<Scalars['String']>;
  /** A list of packages under the owner. */
  packages: PackageConnection;
  /** A list of users who have been invited to join this organization. */
  pendingMembers: UserConnection;
  /** A list of repositories and gists this profile owner can pin to their profile. */
  pinnableItems: PinnableItemConnection;
  /** A list of repositories and gists this profile owner has pinned to their profile */
  pinnedItems: PinnableItemConnection;
  /** Returns how many more items this profile owner can pin to their profile. */
  pinnedItemsRemaining: Scalars['Int'];
  /** Find project by number. */
  project?: Maybe<Project>;
  /** Find a project by number. */
  projectV2?: Maybe<ProjectV2>;
  /** A list of projects under the owner. */
  projects: ProjectConnection;
  /** The HTTP path listing organization's projects */
  projectsResourcePath: Scalars['URI'];
  /** The HTTP URL listing organization's projects */
  projectsUrl: Scalars['URI'];
  /** A list of projects under the owner. */
  projectsV2: ProjectV2Connection;
  /** Recent projects that this user has modified in the context of the owner. */
  recentProjects: ProjectV2Connection;
  /** A list of repositories that the user owns. */
  repositories: RepositoryConnection;
  /** Find Repository. */
  repository?: Maybe<Repository>;
  /** Discussion comments this user has authored. */
  repositoryDiscussionComments: DiscussionCommentConnection;
  /** Discussions this user has started. */
  repositoryDiscussions: DiscussionConnection;
  /** A list of all repository migrations for this organization. */
  repositoryMigrations: RepositoryMigrationConnection;
  /**
   * When true the organization requires all members, billing managers, and outside
   * collaborators to enable two-factor authentication.
   */
  requiresTwoFactorAuthentication?: Maybe<Scalars['Boolean']>;
  /** The HTTP path for this organization. */
  resourcePath: Scalars['URI'];
  /** The Organization's SAML identity providers */
  samlIdentityProvider?: Maybe<OrganizationIdentityProvider>;
  /** List of users and organizations this entity is sponsoring. */
  sponsoring: SponsorConnection;
  /** List of sponsors for this user or organization. */
  sponsors: SponsorConnection;
  /** Events involving this sponsorable, such as new sponsorships. */
  sponsorsActivities: SponsorsActivityConnection;
  /** The GitHub Sponsors listing for this user or organization. */
  sponsorsListing?: Maybe<SponsorsListing>;
  /** The sponsorship from the viewer to this user/organization; that is, the sponsorship where you're the sponsor. */
  sponsorshipForViewerAsSponsor?: Maybe<Sponsorship>;
  /** The sponsorship from this user/organization to the viewer; that is, the sponsorship you're receiving. */
  sponsorshipForViewerAsSponsorable?: Maybe<Sponsorship>;
  /** List of sponsorship updates sent from this sponsorable to sponsors. */
  sponsorshipNewsletters: SponsorshipNewsletterConnection;
  /** The sponsorships where this user or organization is the maintainer receiving the funds. */
  sponsorshipsAsMaintainer: SponsorshipConnection;
  /** The sponsorships where this user or organization is the funder. */
  sponsorshipsAsSponsor: SponsorshipConnection;
  /** Find an organization's team by its slug. */
  team?: Maybe<Team>;
  /** A list of teams in this organization. */
  teams: TeamConnection;
  /** The HTTP path listing organization's teams */
  teamsResourcePath: Scalars['URI'];
  /** The HTTP URL listing organization's teams */
  teamsUrl: Scalars['URI'];
  /**
   * The amount in United States cents (e.g., 500 = $5.00 USD) that this entity has
   * spent on GitHub to fund sponsorships. Only returns a value when viewed by the
   * user themselves or by a user who can manage sponsorships for the requested organization.
   */
  totalSponsorshipAmountAsSponsorInCents?: Maybe<Scalars['Int']>;
  /** The organization's Twitter username. */
  twitterUsername?: Maybe<Scalars['String']>;
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
  /** The HTTP URL for this organization. */
  url: Scalars['URI'];
  /** Organization is adminable by the viewer. */
  viewerCanAdminister: Scalars['Boolean'];
  /** Can the viewer pin repositories and gists to the profile? */
  viewerCanChangePinnedItems: Scalars['Boolean'];
  /** Can the current viewer create new projects on this owner. */
  viewerCanCreateProjects: Scalars['Boolean'];
  /** Viewer can create repositories on this organization */
  viewerCanCreateRepositories: Scalars['Boolean'];
  /** Viewer can create teams on this organization. */
  viewerCanCreateTeams: Scalars['Boolean'];
  /** Whether or not the viewer is able to sponsor this user/organization. */
  viewerCanSponsor: Scalars['Boolean'];
  /** Viewer is an active member of this organization. */
  viewerIsAMember: Scalars['Boolean'];
  /** Whether or not this Organization is followed by the viewer. */
  viewerIsFollowing: Scalars['Boolean'];
  /** True if the viewer is sponsoring this user/organization. */
  viewerIsSponsoring: Scalars['Boolean'];
  /** Whether contributors are required to sign off on web-based commits for repositories in this organization. */
  webCommitSignoffRequired: Scalars['Boolean'];
  /** The organization's public profile URL. */
  websiteUrl?: Maybe<Scalars['URI']>;
};


/** An account on GitHub, with one or more owners, that has repositories, members and teams. */
export type OrganizationAnyPinnableItemsArgs = {
  type?: InputMaybe<PinnableItemType>;
};


/** An account on GitHub, with one or more owners, that has repositories, members and teams. */
export type OrganizationAuditLogArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<AuditLogOrder>;
  query?: InputMaybe<Scalars['String']>;
};


/** An account on GitHub, with one or more owners, that has repositories, members and teams. */
export type OrganizationAvatarUrlArgs = {
  size?: InputMaybe<Scalars['Int']>;
};


/** An account on GitHub, with one or more owners, that has repositories, members and teams. */
export type OrganizationDomainsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  isApproved?: InputMaybe<Scalars['Boolean']>;
  isVerified?: InputMaybe<Scalars['Boolean']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<VerifiableDomainOrder>;
};


/** An account on GitHub, with one or more owners, that has repositories, members and teams. */
export type OrganizationEnterpriseOwnersArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<OrgEnterpriseOwnerOrder>;
  organizationRole?: InputMaybe<RoleInOrganization>;
  query?: InputMaybe<Scalars['String']>;
};


/** An account on GitHub, with one or more owners, that has repositories, members and teams. */
export type OrganizationIpAllowListEntriesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<IpAllowListEntryOrder>;
};


/** An account on GitHub, with one or more owners, that has repositories, members and teams. */
export type OrganizationIsSponsoredByArgs = {
  accountLogin: Scalars['String'];
};


/** An account on GitHub, with one or more owners, that has repositories, members and teams. */
export type OrganizationMannequinsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<MannequinOrder>;
};


/** An account on GitHub, with one or more owners, that has repositories, members and teams. */
export type OrganizationMemberStatusesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<UserStatusOrder>;
};


/** An account on GitHub, with one or more owners, that has repositories, members and teams. */
export type OrganizationMembersWithRoleArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** An account on GitHub, with one or more owners, that has repositories, members and teams. */
export type OrganizationPackagesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  names?: InputMaybe<Array<InputMaybe<Scalars['String']>>>;
  orderBy?: InputMaybe<PackageOrder>;
  packageType?: InputMaybe<PackageType>;
  repositoryId?: InputMaybe<Scalars['ID']>;
};


/** An account on GitHub, with one or more owners, that has repositories, members and teams. */
export type OrganizationPendingMembersArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** An account on GitHub, with one or more owners, that has repositories, members and teams. */
export type OrganizationPinnableItemsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  types?: InputMaybe<Array<PinnableItemType>>;
};


/** An account on GitHub, with one or more owners, that has repositories, members and teams. */
export type OrganizationPinnedItemsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  types?: InputMaybe<Array<PinnableItemType>>;
};


/** An account on GitHub, with one or more owners, that has repositories, members and teams. */
export type OrganizationProjectArgs = {
  number: Scalars['Int'];
};


/** An account on GitHub, with one or more owners, that has repositories, members and teams. */
export type OrganizationProjectV2Args = {
  number: Scalars['Int'];
};


/** An account on GitHub, with one or more owners, that has repositories, members and teams. */
export type OrganizationProjectsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ProjectOrder>;
  search?: InputMaybe<Scalars['String']>;
  states?: InputMaybe<Array<ProjectState>>;
};


/** An account on GitHub, with one or more owners, that has repositories, members and teams. */
export type OrganizationProjectsV2Args = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ProjectV2Order>;
  query?: InputMaybe<Scalars['String']>;
};


/** An account on GitHub, with one or more owners, that has repositories, members and teams. */
export type OrganizationRecentProjectsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** An account on GitHub, with one or more owners, that has repositories, members and teams. */
export type OrganizationRepositoriesArgs = {
  affiliations?: InputMaybe<Array<InputMaybe<RepositoryAffiliation>>>;
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  isFork?: InputMaybe<Scalars['Boolean']>;
  isLocked?: InputMaybe<Scalars['Boolean']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<RepositoryOrder>;
  ownerAffiliations?: InputMaybe<Array<InputMaybe<RepositoryAffiliation>>>;
  privacy?: InputMaybe<RepositoryPrivacy>;
};


/** An account on GitHub, with one or more owners, that has repositories, members and teams. */
export type OrganizationRepositoryArgs = {
  followRenames?: InputMaybe<Scalars['Boolean']>;
  name: Scalars['String'];
};


/** An account on GitHub, with one or more owners, that has repositories, members and teams. */
export type OrganizationRepositoryDiscussionCommentsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  onlyAnswers?: InputMaybe<Scalars['Boolean']>;
  repositoryId?: InputMaybe<Scalars['ID']>;
};


/** An account on GitHub, with one or more owners, that has repositories, members and teams. */
export type OrganizationRepositoryDiscussionsArgs = {
  after?: InputMaybe<Scalars['String']>;
  answered?: InputMaybe<Scalars['Boolean']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<DiscussionOrder>;
  repositoryId?: InputMaybe<Scalars['ID']>;
  states?: InputMaybe<Array<DiscussionState>>;
};


/** An account on GitHub, with one or more owners, that has repositories, members and teams. */
export type OrganizationRepositoryMigrationsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<RepositoryMigrationOrder>;
  repositoryName?: InputMaybe<Scalars['String']>;
  state?: InputMaybe<MigrationState>;
};


/** An account on GitHub, with one or more owners, that has repositories, members and teams. */
export type OrganizationSponsoringArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<SponsorOrder>;
};


/** An account on GitHub, with one or more owners, that has repositories, members and teams. */
export type OrganizationSponsorsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<SponsorOrder>;
  tierId?: InputMaybe<Scalars['ID']>;
};


/** An account on GitHub, with one or more owners, that has repositories, members and teams. */
export type OrganizationSponsorsActivitiesArgs = {
  actions?: InputMaybe<Array<SponsorsActivityAction>>;
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  includeAsSponsor?: InputMaybe<Scalars['Boolean']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<SponsorsActivityOrder>;
  period?: InputMaybe<SponsorsActivityPeriod>;
  since?: InputMaybe<Scalars['DateTime']>;
  until?: InputMaybe<Scalars['DateTime']>;
};


/** An account on GitHub, with one or more owners, that has repositories, members and teams. */
export type OrganizationSponsorshipForViewerAsSponsorArgs = {
  activeOnly?: InputMaybe<Scalars['Boolean']>;
};


/** An account on GitHub, with one or more owners, that has repositories, members and teams. */
export type OrganizationSponsorshipForViewerAsSponsorableArgs = {
  activeOnly?: InputMaybe<Scalars['Boolean']>;
};


/** An account on GitHub, with one or more owners, that has repositories, members and teams. */
export type OrganizationSponsorshipNewslettersArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<SponsorshipNewsletterOrder>;
};


/** An account on GitHub, with one or more owners, that has repositories, members and teams. */
export type OrganizationSponsorshipsAsMaintainerArgs = {
  activeOnly?: InputMaybe<Scalars['Boolean']>;
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  includePrivate?: InputMaybe<Scalars['Boolean']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<SponsorshipOrder>;
};


/** An account on GitHub, with one or more owners, that has repositories, members and teams. */
export type OrganizationSponsorshipsAsSponsorArgs = {
  activeOnly?: InputMaybe<Scalars['Boolean']>;
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  maintainerLogins?: InputMaybe<Array<Scalars['String']>>;
  orderBy?: InputMaybe<SponsorshipOrder>;
};


/** An account on GitHub, with one or more owners, that has repositories, members and teams. */
export type OrganizationTeamArgs = {
  slug: Scalars['String'];
};


/** An account on GitHub, with one or more owners, that has repositories, members and teams. */
export type OrganizationTeamsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  ldapMapped?: InputMaybe<Scalars['Boolean']>;
  orderBy?: InputMaybe<TeamOrder>;
  privacy?: InputMaybe<TeamPrivacy>;
  query?: InputMaybe<Scalars['String']>;
  role?: InputMaybe<TeamRole>;
  rootTeamsOnly?: InputMaybe<Scalars['Boolean']>;
  userLogins?: InputMaybe<Array<Scalars['String']>>;
};


/** An account on GitHub, with one or more owners, that has repositories, members and teams. */
export type OrganizationTotalSponsorshipAmountAsSponsorInCentsArgs = {
  since?: InputMaybe<Scalars['DateTime']>;
  sponsorableLogins?: InputMaybe<Array<Scalars['String']>>;
  until?: InputMaybe<Scalars['DateTime']>;
};

/** An audit entry in an organization audit log. */
export type OrganizationAuditEntry = MembersCanDeleteReposClearAuditEntry | MembersCanDeleteReposDisableAuditEntry | MembersCanDeleteReposEnableAuditEntry | OauthApplicationCreateAuditEntry | OrgAddBillingManagerAuditEntry | OrgAddMemberAuditEntry | OrgBlockUserAuditEntry | OrgConfigDisableCollaboratorsOnlyAuditEntry | OrgConfigEnableCollaboratorsOnlyAuditEntry | OrgCreateAuditEntry | OrgDisableOauthAppRestrictionsAuditEntry | OrgDisableSamlAuditEntry | OrgDisableTwoFactorRequirementAuditEntry | OrgEnableOauthAppRestrictionsAuditEntry | OrgEnableSamlAuditEntry | OrgEnableTwoFactorRequirementAuditEntry | OrgInviteMemberAuditEntry | OrgInviteToBusinessAuditEntry | OrgOauthAppAccessApprovedAuditEntry | OrgOauthAppAccessDeniedAuditEntry | OrgOauthAppAccessRequestedAuditEntry | OrgRemoveBillingManagerAuditEntry | OrgRemoveMemberAuditEntry | OrgRemoveOutsideCollaboratorAuditEntry | OrgRestoreMemberAuditEntry | OrgUnblockUserAuditEntry | OrgUpdateDefaultRepositoryPermissionAuditEntry | OrgUpdateMemberAuditEntry | OrgUpdateMemberRepositoryCreationPermissionAuditEntry | OrgUpdateMemberRepositoryInvitationPermissionAuditEntry | PrivateRepositoryForkingDisableAuditEntry | PrivateRepositoryForkingEnableAuditEntry | RepoAccessAuditEntry | RepoAddMemberAuditEntry | RepoAddTopicAuditEntry | RepoArchivedAuditEntry | RepoChangeMergeSettingAuditEntry | RepoConfigDisableAnonymousGitAccessAuditEntry | RepoConfigDisableCollaboratorsOnlyAuditEntry | RepoConfigDisableContributorsOnlyAuditEntry | RepoConfigDisableSockpuppetDisallowedAuditEntry | RepoConfigEnableAnonymousGitAccessAuditEntry | RepoConfigEnableCollaboratorsOnlyAuditEntry | RepoConfigEnableContributorsOnlyAuditEntry | RepoConfigEnableSockpuppetDisallowedAuditEntry | RepoConfigLockAnonymousGitAccessAuditEntry | RepoConfigUnlockAnonymousGitAccessAuditEntry | RepoCreateAuditEntry | RepoDestroyAuditEntry | RepoRemoveMemberAuditEntry | RepoRemoveTopicAuditEntry | RepositoryVisibilityChangeDisableAuditEntry | RepositoryVisibilityChangeEnableAuditEntry | TeamAddMemberAuditEntry | TeamAddRepositoryAuditEntry | TeamChangeParentTeamAuditEntry | TeamRemoveMemberAuditEntry | TeamRemoveRepositoryAuditEntry;

/** The connection type for OrganizationAuditEntry. */
export type OrganizationAuditEntryConnection = {
  __typename?: 'OrganizationAuditEntryConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<OrganizationAuditEntryEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<OrganizationAuditEntry>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** Metadata for an audit entry with action org.* */
export type OrganizationAuditEntryData = {
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
};

/** An edge in a connection. */
export type OrganizationAuditEntryEdge = {
  __typename?: 'OrganizationAuditEntryEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<OrganizationAuditEntry>;
};

/** A list of organizations managed by an enterprise. */
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;
  /** Identifies the total count of items in the connection. */
  totalCount: 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>;
};

/** The connection type for User. */
export type OrganizationEnterpriseOwnerConnection = {
  __typename?: 'OrganizationEnterpriseOwnerConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<OrganizationEnterpriseOwnerEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<User>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An enterprise owner in the context of an organization that is part of the enterprise. */
export type OrganizationEnterpriseOwnerEdge = {
  __typename?: 'OrganizationEnterpriseOwnerEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<User>;
  /** The role of the owner with respect to the organization. */
  organizationRole: RoleInOrganization;
};

/** An Identity Provider configured to provision SAML and SCIM identities for Organizations */
export type OrganizationIdentityProvider = Node & {
  __typename?: 'OrganizationIdentityProvider';
  /** The digest algorithm used to sign SAML requests for the Identity Provider. */
  digestMethod?: Maybe<Scalars['URI']>;
  /** External Identities provisioned by this Identity Provider */
  externalIdentities: ExternalIdentityConnection;
  id: Scalars['ID'];
  /** The x509 certificate used by the Identity Provider to sign assertions and responses. */
  idpCertificate?: Maybe<Scalars['X509Certificate']>;
  /** The Issuer Entity ID for the SAML Identity Provider */
  issuer?: Maybe<Scalars['String']>;
  /** Organization this Identity Provider belongs to */
  organization?: Maybe<Organization>;
  /** The signature algorithm used to sign SAML requests for the Identity Provider. */
  signatureMethod?: Maybe<Scalars['URI']>;
  /** The URL endpoint for the Identity Provider's SAML SSO. */
  ssoUrl?: Maybe<Scalars['URI']>;
};


/** An Identity Provider configured to provision SAML and SCIM identities for Organizations */
export type OrganizationIdentityProviderExternalIdentitiesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  login?: InputMaybe<Scalars['String']>;
  membersOnly?: InputMaybe<Scalars['Boolean']>;
  userName?: InputMaybe<Scalars['String']>;
};

/** An Invitation for a user to an organization. */
export type OrganizationInvitation = Node & {
  __typename?: 'OrganizationInvitation';
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** The email address of the user invited to the organization. */
  email?: Maybe<Scalars['String']>;
  id: Scalars['ID'];
  /** The source of the invitation. */
  invitationSource: OrganizationInvitationSource;
  /** The type of invitation that was sent (e.g. email, user). */
  invitationType: OrganizationInvitationType;
  /** The user who was invited to the organization. */
  invitee?: Maybe<User>;
  /** The user who created the invitation. */
  inviter: User;
  /** The organization the invite is for */
  organization: Organization;
  /** The user's pending role in the organization (e.g. member, owner). */
  role: OrganizationInvitationRole;
};

/** The connection type for OrganizationInvitation. */
export type OrganizationInvitationConnection = {
  __typename?: 'OrganizationInvitationConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<OrganizationInvitationEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<OrganizationInvitation>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type OrganizationInvitationEdge = {
  __typename?: 'OrganizationInvitationEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<OrganizationInvitation>;
};

/** The possible organization invitation roles. */
export type OrganizationInvitationRole =
  /** The user is invited to be an admin of the organization. */
  | 'ADMIN'
  /** The user is invited to be a billing manager of the organization. */
  | 'BILLING_MANAGER'
  /** The user is invited to be a direct member of the organization. */
  | 'DIRECT_MEMBER'
  /** The user's previous role will be reinstated. */
  | 'REINSTATE';

/** The possible organization invitation sources. */
export type OrganizationInvitationSource =
  /** The invitation was created from the web interface or from API */
  | 'MEMBER'
  /** The invitation was created from SCIM */
  | 'SCIM'
  /** The invitation was sent before this feature was added */
  | 'UNKNOWN';

/** The possible organization invitation types. */
export type OrganizationInvitationType =
  /** The invitation was to an email address. */
  | 'EMAIL'
  /** The invitation was to an existing user. */
  | 'USER';

/** The connection type for User. */
export type OrganizationMemberConnection = {
  __typename?: 'OrganizationMemberConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<OrganizationMemberEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<User>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** Represents a user within an organization. */
export type OrganizationMemberEdge = {
  __typename?: 'OrganizationMemberEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** Whether the organization member has two factor enabled or not. Returns null if information is not available to viewer. */
  hasTwoFactorEnabled?: Maybe<Scalars['Boolean']>;
  /** The item at the end of the edge. */
  node?: Maybe<User>;
  /** The role this user has in the organization. */
  role?: Maybe<OrganizationMemberRole>;
};

/** The possible roles within an organization for its members. */
export type OrganizationMemberRole =
  /** The user is an administrator of the organization. */
  | 'ADMIN'
  /** The user is a member of the organization. */
  | 'MEMBER';

/** The possible values for the members can create repositories setting on an organization. */
export type OrganizationMembersCanCreateRepositoriesSettingValue =
  /** Members will be able to create public and private repositories. */
  | 'ALL'
  /** Members will not be able to create public or private repositories. */
  | 'DISABLED'
  /** Members will be able to create only internal repositories. */
  | 'INTERNAL'
  /** Members will be able to create only private repositories. */
  | 'PRIVATE';

/** A GitHub Enterprise Importer (GEI) organization migration. */
export type OrganizationMigration = Node & {
  __typename?: 'OrganizationMigration';
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['String']>;
  /** The reason the organization migration failed. */
  failureReason?: Maybe<Scalars['String']>;
  id: Scalars['ID'];
  /** The remaining amount of repos to be migrated. */
  remainingRepositoriesCount?: Maybe<Scalars['Int']>;
  /** The name of the source organization to be migrated. */
  sourceOrgName: Scalars['String'];
  /** The URL of the source organization to migrate. */
  sourceOrgUrl: Scalars['URI'];
  /** The migration state. */
  state: OrganizationMigrationState;
  /** The name of the target organization. */
  targetOrgName: Scalars['String'];
  /** The total amount of repositories to be migrated. */
  totalRepositoriesCount?: Maybe<Scalars['Int']>;
};

/** The Octoshift Organization migration state. */
export type OrganizationMigrationState =
  /** The Octoshift migration has failed. */
  | 'FAILED'
  /** The Octoshift migration is in progress. */
  | 'IN_PROGRESS'
  /** The Octoshift migration has not started. */
  | 'NOT_STARTED'
  /** The Octoshift migration is performing post repository migrations. */
  | 'POST_REPO_MIGRATION'
  /** The Octoshift migration is performing pre repository migrations. */
  | 'PRE_REPO_MIGRATION'
  /** The Octoshift migration has been queued. */
  | 'QUEUED'
  /** The Octoshift org migration is performing repository migrations. */
  | 'REPO_MIGRATION'
  /** The Octoshift migration has succeeded. */
  | 'SUCCEEDED';

/** Used for argument of CreateProjectV2 mutation. */
export type OrganizationOrUser = Organization | User;

/** Ordering options for organization connections. */
export type OrganizationOrder = {
  /** The ordering direction. */
  direction: OrderDirection;
  /** The field to order organizations by. */
  field: OrganizationOrderField;
};

/** Properties by which organization connections can be ordered. */
export type OrganizationOrderField =
  /** Order organizations by creation time */
  | 'CREATED_AT'
  /** Order organizations by login */
  | 'LOGIN';

/** An organization teams hovercard context */
export type OrganizationTeamsHovercardContext = HovercardContext & {
  __typename?: 'OrganizationTeamsHovercardContext';
  /** A string describing this context */
  message: Scalars['String'];
  /** An octicon to accompany this context */
  octicon: Scalars['String'];
  /** Teams in this organization the user is a member of that are relevant */
  relevantTeams: TeamConnection;
  /** The path for the full team list for this user */
  teamsResourcePath: Scalars['URI'];
  /** The URL for the full team list for this user */
  teamsUrl: Scalars['URI'];
  /** The total number of teams the user is on in the organization */
  totalTeamCount: Scalars['Int'];
};


/** An organization teams hovercard context */
export type OrganizationTeamsHovercardContextRelevantTeamsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};

/** An organization list hovercard context */
export type OrganizationsHovercardContext = HovercardContext & {
  __typename?: 'OrganizationsHovercardContext';
  /** A string describing this context */
  message: Scalars['String'];
  /** An octicon to accompany this context */
  octicon: Scalars['String'];
  /** Organizations this user is a member of that are relevant */
  relevantOrganizations: OrganizationConnection;
  /** The total number of organizations this user is in */
  totalOrganizationCount: Scalars['Int'];
};


/** An organization list hovercard context */
export type OrganizationsHovercardContextRelevantOrganizationsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<OrganizationOrder>;
};

/** Information for an uploaded package. */
export type Package = Node & {
  __typename?: 'Package';
  id: Scalars['ID'];
  /** Find the latest version for the package. */
  latestVersion?: Maybe<PackageVersion>;
  /** Identifies the name of the package. */
  name: Scalars['String'];
  /** Identifies the type of the package. */
  packageType: PackageType;
  /** The repository this package belongs to. */
  repository?: Maybe<Repository>;
  /** Statistics about package activity. */
  statistics?: Maybe<PackageStatistics>;
  /** Find package version by version string. */
  version?: Maybe<PackageVersion>;
  /** list of versions for this package */
  versions: PackageVersionConnection;
};


/** Information for an uploaded package. */
export type PackageVersionArgs = {
  version: Scalars['String'];
};


/** Information for an uploaded package. */
export type PackageVersionsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<PackageVersionOrder>;
};

/** The connection type for Package. */
export type PackageConnection = {
  __typename?: 'PackageConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<PackageEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<Package>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type PackageEdge = {
  __typename?: 'PackageEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<Package>;
};

/** A file in a package version. */
export type PackageFile = Node & {
  __typename?: 'PackageFile';
  id: Scalars['ID'];
  /** MD5 hash of the file. */
  md5?: Maybe<Scalars['String']>;
  /** Name of the file. */
  name: Scalars['String'];
  /** The package version this file belongs to. */
  packageVersion?: Maybe<PackageVersion>;
  /** SHA1 hash of the file. */
  sha1?: Maybe<Scalars['String']>;
  /** SHA256 hash of the file. */
  sha256?: Maybe<Scalars['String']>;
  /** Size of the file in bytes. */
  size?: Maybe<Scalars['Int']>;
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
  /** URL to download the asset. */
  url?: Maybe<Scalars['URI']>;
};

/** The connection type for PackageFile. */
export type PackageFileConnection = {
  __typename?: 'PackageFileConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<PackageFileEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<PackageFile>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type PackageFileEdge = {
  __typename?: 'PackageFileEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<PackageFile>;
};

/** Ways in which lists of package files can be ordered upon return. */
export type PackageFileOrder = {
  /** The direction in which to order package files by the specified field. */
  direction?: InputMaybe<OrderDirection>;
  /** The field in which to order package files by. */
  field?: InputMaybe<PackageFileOrderField>;
};

/** Properties by which package file connections can be ordered. */
export type PackageFileOrderField =
  /** Order package files by creation time */
  | 'CREATED_AT';

/** Ways in which lists of packages can be ordered upon return. */
export type PackageOrder = {
  /** The direction in which to order packages by the specified field. */
  direction?: InputMaybe<OrderDirection>;
  /** The field in which to order packages by. */
  field?: InputMaybe<PackageOrderField>;
};

/** Properties by which package connections can be ordered. */
export type PackageOrderField =
  /** Order packages by creation time */
  | 'CREATED_AT';

/** Represents an owner of a package. */
export type PackageOwner = {
  id: Scalars['ID'];
  /** A list of packages under the owner. */
  packages: PackageConnection;
};


/** Represents an owner of a package. */
export type PackageOwnerPackagesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  names?: InputMaybe<Array<InputMaybe<Scalars['String']>>>;
  orderBy?: InputMaybe<PackageOrder>;
  packageType?: InputMaybe<PackageType>;
  repositoryId?: InputMaybe<Scalars['ID']>;
};

/** Represents a object that contains package activity statistics such as downloads. */
export type PackageStatistics = {
  __typename?: 'PackageStatistics';
  /** Number of times the package was downloaded since it was created. */
  downloadsTotalCount: Scalars['Int'];
};

/** A version tag contains the mapping between a tag name and a version. */
export type PackageTag = Node & {
  __typename?: 'PackageTag';
  id: Scalars['ID'];
  /** Identifies the tag name of the version. */
  name: Scalars['String'];
  /** Version that the tag is associated with. */
  version?: Maybe<PackageVersion>;
};

/** The possible types of a package. */
export type PackageType =
  /** A debian package. */
  | 'DEBIAN'
  /** A docker image. */
  | 'DOCKER'
  /** A maven package. */
  | 'MAVEN'
  /** An npm package. */
  | 'NPM'
  /** A nuget package. */
  | 'NUGET'
  /** A python package. */
  | 'PYPI'
  /** A rubygems package. */
  | 'RUBYGEMS';

/** Information about a specific package version. */
export type PackageVersion = Node & {
  __typename?: 'PackageVersion';
  /** List of files associated with this package version */
  files: PackageFileConnection;
  id: Scalars['ID'];
  /** The package associated with this version. */
  package?: Maybe<Package>;
  /** The platform this version was built for. */
  platform?: Maybe<Scalars['String']>;
  /** Whether or not this version is a pre-release. */
  preRelease: Scalars['Boolean'];
  /** The README of this package version. */
  readme?: Maybe<Scalars['String']>;
  /** The release associated with this package version. */
  release?: Maybe<Release>;
  /** Statistics about package activity. */
  statistics?: Maybe<PackageVersionStatistics>;
  /** The package version summary. */
  summary?: Maybe<Scalars['String']>;
  /** The version string. */
  version: Scalars['String'];
};


/** Information about a specific package version. */
export type PackageVersionFilesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<PackageFileOrder>;
};

/** The connection type for PackageVersion. */
export type PackageVersionConnection = {
  __typename?: 'PackageVersionConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<PackageVersionEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<PackageVersion>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type PackageVersionEdge = {
  __typename?: 'PackageVersionEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<PackageVersion>;
};

/** Ways in which lists of package versions can be ordered upon return. */
export type PackageVersionOrder = {
  /** The direction in which to order package versions by the specified field. */
  direction?: InputMaybe<OrderDirection>;
  /** The field in which to order package versions by. */
  field?: InputMaybe<PackageVersionOrderField>;
};

/** Properties by which package version connections can be ordered. */
export type PackageVersionOrderField =
  /** Order package versions by creation time */
  | 'CREATED_AT';

/** Represents a object that contains package version activity statistics such as downloads. */
export type PackageVersionStatistics = {
  __typename?: 'PackageVersionStatistics';
  /** Number of times the package was downloaded since it was created. */
  downloadsTotalCount: Scalars['Int'];
};

/** 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']>;
};

/** The possible types of patch statuses. */
export type PatchStatus =
  /** The file was added. Git status 'A'. */
  | 'ADDED'
  /** The file's type was changed. Git status 'T'. */
  | 'CHANGED'
  /** The file was copied. Git status 'C'. */
  | 'COPIED'
  /** The file was deleted. Git status 'D'. */
  | 'DELETED'
  /** The file's contents were changed. Git status 'M'. */
  | 'MODIFIED'
  /** The file was renamed. Git status 'R'. */
  | 'RENAMED';

/** Types that can grant permissions on a repository to a user */
export type PermissionGranter = Organization | Repository | Team;

/** A level of permission and source for a user's access to a repository. */
export type PermissionSource = {
  __typename?: 'PermissionSource';
  /** The organization the repository belongs to. */
  organization: Organization;
  /** The level of access this source has granted to the user. */
  permission: DefaultRepositoryPermissionField;
  /** The source of this permission. */
  source: PermissionGranter;
};

/** Autogenerated input type of PinIssue */
export type PinIssueInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the issue to be pinned */
  issueId: Scalars['ID'];
};

/** Autogenerated return type of PinIssue */
export type PinIssuePayload = {
  __typename?: 'PinIssuePayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The issue that was pinned */
  issue?: Maybe<Issue>;
};

/** Types that can be pinned to a profile page. */
export type PinnableItem = Gist | Repository;

/** The connection type for PinnableItem. */
export type PinnableItemConnection = {
  __typename?: 'PinnableItemConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<PinnableItemEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<PinnableItem>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type PinnableItemEdge = {
  __typename?: 'PinnableItemEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<PinnableItem>;
};

/** Represents items that can be pinned to a profile page or dashboard. */
export type PinnableItemType =
  /** A gist. */
  | 'GIST'
  /** An issue. */
  | 'ISSUE'
  /** An organization. */
  | 'ORGANIZATION'
  /** A project. */
  | 'PROJECT'
  /** A pull request. */
  | 'PULL_REQUEST'
  /** A repository. */
  | 'REPOSITORY'
  /** A team. */
  | 'TEAM'
  /** A user. */
  | 'USER';

/** A Pinned Discussion is a discussion pinned to a repository's index page. */
export type PinnedDiscussion = Node & RepositoryNode & {
  __typename?: 'PinnedDiscussion';
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** The discussion that was pinned. */
  discussion: Discussion;
  /** Color stops of the chosen gradient */
  gradientStopColors: Array<Scalars['String']>;
  id: Scalars['ID'];
  /** Background texture pattern */
  pattern: PinnedDiscussionPattern;
  /** The actor that pinned this discussion. */
  pinnedBy: Bot | EnterpriseUserAccount | Mannequin | Organization | User;
  /** Preconfigured background gradient option */
  preconfiguredGradient?: Maybe<PinnedDiscussionGradient>;
  /** The repository associated with this node. */
  repository: Repository;
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
};

/** The connection type for PinnedDiscussion. */
export type PinnedDiscussionConnection = {
  __typename?: 'PinnedDiscussionConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<PinnedDiscussionEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<PinnedDiscussion>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type PinnedDiscussionEdge = {
  __typename?: 'PinnedDiscussionEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<PinnedDiscussion>;
};

/** Preconfigured gradients that may be used to style discussions pinned within a repository. */
export type PinnedDiscussionGradient =
  /** A gradient of blue to mint */
  | 'BLUE_MINT'
  /** A gradient of blue to purple */
  | 'BLUE_PURPLE'
  /** A gradient of pink to blue */
  | 'PINK_BLUE'
  /** A gradient of purple to coral */
  | 'PURPLE_CORAL'
  /** A gradient of red to orange */
  | 'RED_ORANGE';

/** Preconfigured background patterns that may be used to style discussions pinned within a repository. */
export type PinnedDiscussionPattern =
  /** An upward-facing chevron pattern */
  | 'CHEVRON_UP'
  /** A hollow dot pattern */
  | 'DOT'
  /** A solid dot pattern */
  | 'DOT_FILL'
  /** A heart pattern */
  | 'HEART_FILL'
  /** A plus sign pattern */
  | 'PLUS'
  /** A lightning bolt pattern */
  | 'ZAP';

/** Represents a 'pinned' event on a given issue or pull request. */
export type PinnedEvent = Node & {
  __typename?: 'PinnedEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  id: Scalars['ID'];
  /** Identifies the issue associated with the event. */
  issue: Issue;
};

/** A Pinned Issue is a issue pinned to a repository's index page. */
export type PinnedIssue = Node & {
  __typename?: 'PinnedIssue';
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** Identifies the primary key from the database as a BigInt. */
  fullDatabaseId?: Maybe<Scalars['BigInt']>;
  id: Scalars['ID'];
  /** The issue that was pinned. */
  issue: Issue;
  /** The actor that pinned this issue. */
  pinnedBy: Bot | EnterpriseUserAccount | Mannequin | Organization | User;
  /** The repository that this issue was pinned to. */
  repository: Repository;
};

/** The connection type for PinnedIssue. */
export type PinnedIssueConnection = {
  __typename?: 'PinnedIssueConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<PinnedIssueEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<PinnedIssue>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type PinnedIssueEdge = {
  __typename?: 'PinnedIssueEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<PinnedIssue>;
};

/** Audit log entry for a private_repository_forking.disable event. */
export type PrivateRepositoryForkingDisableAuditEntry = AuditEntry & EnterpriseAuditEntryData & Node & OrganizationAuditEntryData & RepositoryAuditEntryData & {
  __typename?: 'PrivateRepositoryForkingDisableAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  /** The HTTP path for this enterprise. */
  enterpriseResourcePath?: Maybe<Scalars['URI']>;
  /** The slug of the enterprise. */
  enterpriseSlug?: Maybe<Scalars['String']>;
  /** The HTTP URL for this enterprise. */
  enterpriseUrl?: Maybe<Scalars['URI']>;
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The repository associated with the action */
  repository?: Maybe<Repository>;
  /** The name of the repository */
  repositoryName?: Maybe<Scalars['String']>;
  /** The HTTP path for the repository */
  repositoryResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the repository */
  repositoryUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** Audit log entry for a private_repository_forking.enable event. */
export type PrivateRepositoryForkingEnableAuditEntry = AuditEntry & EnterpriseAuditEntryData & Node & OrganizationAuditEntryData & RepositoryAuditEntryData & {
  __typename?: 'PrivateRepositoryForkingEnableAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  /** The HTTP path for this enterprise. */
  enterpriseResourcePath?: Maybe<Scalars['URI']>;
  /** The slug of the enterprise. */
  enterpriseSlug?: Maybe<Scalars['String']>;
  /** The HTTP URL for this enterprise. */
  enterpriseUrl?: Maybe<Scalars['URI']>;
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The repository associated with the action */
  repository?: Maybe<Repository>;
  /** The name of the repository */
  repositoryName?: Maybe<Scalars['String']>;
  /** The HTTP path for the repository */
  repositoryResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the repository */
  repositoryUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/**
 * A curatable list of repositories relating to a repository owner, which defaults
 * to showing the most popular repositories they own.
 */
export type ProfileItemShowcase = {
  __typename?: 'ProfileItemShowcase';
  /** Whether or not the owner has pinned any repositories or gists. */
  hasPinnedItems: Scalars['Boolean'];
  /**
   * The repositories and gists in the showcase. If the profile owner has any
   * pinned items, those will be returned. Otherwise, the profile owner's popular
   * repositories will be returned.
   */
  items: PinnableItemConnection;
};


/**
 * A curatable list of repositories relating to a repository owner, which defaults
 * to showing the most popular repositories they own.
 */
export type ProfileItemShowcaseItemsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};

/** Represents any entity on GitHub that has a profile page. */
export type ProfileOwner = {
  /** Determine if this repository owner has any items that can be pinned to their profile. */
  anyPinnableItems: Scalars['Boolean'];
  /** The public profile email. */
  email?: Maybe<Scalars['String']>;
  id: Scalars['ID'];
  /**
   * Showcases a selection of repositories and gists that the profile owner has
   * either curated or that have been selected automatically based on popularity.
   */
  itemShowcase: ProfileItemShowcase;
  /** The public profile location. */
  location?: Maybe<Scalars['String']>;
  /** The username used to login. */
  login: Scalars['String'];
  /** The public profile name. */
  name?: Maybe<Scalars['String']>;
  /** A list of repositories and gists this profile owner can pin to their profile. */
  pinnableItems: PinnableItemConnection;
  /** A list of repositories and gists this profile owner has pinned to their profile */
  pinnedItems: PinnableItemConnection;
  /** Returns how many more items this profile owner can pin to their profile. */
  pinnedItemsRemaining: Scalars['Int'];
  /** Can the viewer pin repositories and gists to the profile? */
  viewerCanChangePinnedItems: Scalars['Boolean'];
  /** The public profile website URL. */
  websiteUrl?: Maybe<Scalars['URI']>;
};


/** Represents any entity on GitHub that has a profile page. */
export type ProfileOwnerAnyPinnableItemsArgs = {
  type?: InputMaybe<PinnableItemType>;
};


/** Represents any entity on GitHub that has a profile page. */
export type ProfileOwnerPinnableItemsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  types?: InputMaybe<Array<PinnableItemType>>;
};


/** Represents any entity on GitHub that has a profile page. */
export type ProfileOwnerPinnedItemsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  types?: InputMaybe<Array<PinnableItemType>>;
};

/** Projects manage issues, pull requests and notes within a project owner. */
export type Project = Closable & Node & Updatable & {
  __typename?: 'Project';
  /** The project's description body. */
  body?: Maybe<Scalars['String']>;
  /** The projects description body rendered to HTML. */
  bodyHTML: Scalars['HTML'];
  /** Indicates if the object is closed (definition of closed may depend on type) */
  closed: Scalars['Boolean'];
  /** Identifies the date and time when the object was closed. */
  closedAt?: Maybe<Scalars['DateTime']>;
  /** List of columns in the project */
  columns: ProjectColumnConnection;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** The actor who originally created the project. */
  creator?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  id: Scalars['ID'];
  /** The project's name. */
  name: Scalars['String'];
  /** The project's number. */
  number: Scalars['Int'];
  /** The project's owner. Currently limited to repositories, organizations, and users. */
  owner: Organization | Repository | User;
  /** List of pending cards in this project */
  pendingCards: ProjectCardConnection;
  /** Project progress details. */
  progress: ProjectProgress;
  /** The HTTP path for this project */
  resourcePath: Scalars['URI'];
  /** Whether the project is open or closed. */
  state: ProjectState;
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
  /** The HTTP URL for this project */
  url: Scalars['URI'];
  /** Indicates if the object can be closed by the viewer. */
  viewerCanClose: Scalars['Boolean'];
  /** Indicates if the object can be reopened by the viewer. */
  viewerCanReopen: Scalars['Boolean'];
  /** Check if the current viewer can update this object. */
  viewerCanUpdate: Scalars['Boolean'];
};


/** Projects manage issues, pull requests and notes within a project owner. */
export type ProjectColumnsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** Projects manage issues, pull requests and notes within a project owner. */
export type ProjectPendingCardsArgs = {
  after?: InputMaybe<Scalars['String']>;
  archivedStates?: InputMaybe<Array<InputMaybe<ProjectCardArchivedState>>>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};

/** A card in a project. */
export type ProjectCard = Node & {
  __typename?: 'ProjectCard';
  /**
   * The project column this card is associated under. A card may only belong to one
   * project column at a time. The column field will be null if the card is created
   * in a pending state and has yet to be associated with a column. Once cards are
   * associated with a column, they will not become pending in the future.
   */
  column?: Maybe<ProjectColumn>;
  /** The card content item */
  content?: Maybe<ProjectCardItem>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** The actor who created this card */
  creator?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  id: Scalars['ID'];
  /** Whether the card is archived */
  isArchived: Scalars['Boolean'];
  /** The card note */
  note?: Maybe<Scalars['String']>;
  /** The project that contains this card. */
  project: Project;
  /** The HTTP path for this card */
  resourcePath: Scalars['URI'];
  /** The state of ProjectCard */
  state?: Maybe<ProjectCardState>;
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
  /** The HTTP URL for this card */
  url: Scalars['URI'];
};

/** The possible archived states of a project card. */
export type ProjectCardArchivedState =
  /** A project card that is archived */
  | 'ARCHIVED'
  /** A project card that is not archived */
  | 'NOT_ARCHIVED';

/** The connection type for ProjectCard. */
export type ProjectCardConnection = {
  __typename?: 'ProjectCardConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<ProjectCardEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<ProjectCard>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type ProjectCardEdge = {
  __typename?: 'ProjectCardEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<ProjectCard>;
};

/** Types that can be inside Project Cards. */
export type ProjectCardItem = Issue | PullRequest;

/** Various content states of a ProjectCard */
export type ProjectCardState =
  /** The card has content only. */
  | 'CONTENT_ONLY'
  /** The card has a note only. */
  | 'NOTE_ONLY'
  /** The card is redacted. */
  | 'REDACTED';

/** A column inside a project. */
export type ProjectColumn = Node & {
  __typename?: 'ProjectColumn';
  /** List of cards in the column */
  cards: ProjectCardConnection;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  id: Scalars['ID'];
  /** The project column's name. */
  name: Scalars['String'];
  /** The project that contains this column. */
  project: Project;
  /** The semantic purpose of the column */
  purpose?: Maybe<ProjectColumnPurpose>;
  /** The HTTP path for this project column */
  resourcePath: Scalars['URI'];
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
  /** The HTTP URL for this project column */
  url: Scalars['URI'];
};


/** A column inside a project. */
export type ProjectColumnCardsArgs = {
  after?: InputMaybe<Scalars['String']>;
  archivedStates?: InputMaybe<Array<InputMaybe<ProjectCardArchivedState>>>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};

/** The connection type for ProjectColumn. */
export type ProjectColumnConnection = {
  __typename?: 'ProjectColumnConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<ProjectColumnEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<ProjectColumn>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type ProjectColumnEdge = {
  __typename?: 'ProjectColumnEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<ProjectColumn>;
};

/** The semantic purpose of the column - todo, in progress, or done. */
export type ProjectColumnPurpose =
  /** The column contains cards which are complete */
  | 'DONE'
  /** The column contains cards which are currently being worked on */
  | 'IN_PROGRESS'
  /** The column contains cards still to be worked on */
  | 'TODO';

/** A list of projects associated with the owner. */
export type ProjectConnection = {
  __typename?: 'ProjectConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<ProjectEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<Project>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type ProjectEdge = {
  __typename?: 'ProjectEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<Project>;
};

/** Ways in which lists of projects can be ordered upon return. */
export type ProjectOrder = {
  /** The direction in which to order projects by the specified field. */
  direction: OrderDirection;
  /** The field in which to order projects by. */
  field: ProjectOrderField;
};

/** Properties by which project connections can be ordered. */
export type ProjectOrderField =
  /** Order projects by creation time */
  | 'CREATED_AT'
  /** Order projects by name */
  | 'NAME'
  /** Order projects by update time */
  | 'UPDATED_AT';

/** Represents an owner of a Project. */
export type ProjectOwner = {
  id: Scalars['ID'];
  /** Find project by number. */
  project?: Maybe<Project>;
  /** A list of projects under the owner. */
  projects: ProjectConnection;
  /** The HTTP path listing owners projects */
  projectsResourcePath: Scalars['URI'];
  /** The HTTP URL listing owners projects */
  projectsUrl: Scalars['URI'];
  /** Can the current viewer create new projects on this owner. */
  viewerCanCreateProjects: Scalars['Boolean'];
};


/** Represents an owner of a Project. */
export type ProjectOwnerProjectArgs = {
  number: Scalars['Int'];
};


/** Represents an owner of a Project. */
export type ProjectOwnerProjectsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ProjectOrder>;
  search?: InputMaybe<Scalars['String']>;
  states?: InputMaybe<Array<ProjectState>>;
};

/** Project progress stats. */
export type ProjectProgress = {
  __typename?: 'ProjectProgress';
  /** The number of done cards. */
  doneCount: Scalars['Int'];
  /** The percentage of done cards. */
  donePercentage: Scalars['Float'];
  /** Whether progress tracking is enabled and cards with purpose exist for this project */
  enabled: Scalars['Boolean'];
  /** The number of in-progress cards. */
  inProgressCount: Scalars['Int'];
  /** The percentage of in-progress cards. */
  inProgressPercentage: Scalars['Float'];
  /** The number of to do cards. */
  todoCount: Scalars['Int'];
  /** The percentage of to do cards. */
  todoPercentage: Scalars['Float'];
};

/** State of the project; either 'open' or 'closed' */
export type ProjectState =
  /** The project is closed. */
  | 'CLOSED'
  /** The project is open. */
  | 'OPEN';

/** GitHub-provided templates for Projects */
export type ProjectTemplate =
  /** Create a board with v2 triggers to automatically move cards across To do, In progress and Done columns. */
  | 'AUTOMATED_KANBAN_V2'
  /** Create a board with triggers to automatically move cards across columns with review automation. */
  | 'AUTOMATED_REVIEWS_KANBAN'
  /** Create a board with columns for To do, In progress and Done. */
  | 'BASIC_KANBAN'
  /** Create a board to triage and prioritize bugs with To do, priority, and Done columns. */
  | 'BUG_TRIAGE';

/** New projects that manage issues, pull requests and drafts using tables and boards. */
export type ProjectV2 = Closable & Node & Updatable & {
  __typename?: 'ProjectV2';
  /** Returns true if the project is closed. */
  closed: Scalars['Boolean'];
  /** Identifies the date and time when the object was closed. */
  closedAt?: Maybe<Scalars['DateTime']>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** The actor who originally created the project. */
  creator?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** A field of the project */
  field?: Maybe<ProjectV2FieldConfiguration>;
  /** List of fields and their constraints in the project */
  fields: ProjectV2FieldConfigurationConnection;
  id: Scalars['ID'];
  /** List of items in the project */
  items: ProjectV2ItemConnection;
  /** The project's number. */
  number: Scalars['Int'];
  /** The project's owner. Currently limited to organizations and users. */
  owner: Issue | Organization | PullRequest | User;
  /** Returns true if the project is public. */
  public: Scalars['Boolean'];
  /** The project's readme. */
  readme?: Maybe<Scalars['String']>;
  /** The repositories the project is linked to. */
  repositories: RepositoryConnection;
  /** The HTTP path for this project */
  resourcePath: Scalars['URI'];
  /** The project's short description. */
  shortDescription?: Maybe<Scalars['String']>;
  /** The teams the project is linked to. */
  teams: TeamConnection;
  /** Returns true if this project is a template. */
  template: Scalars['Boolean'];
  /** The project's name. */
  title: Scalars['String'];
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
  /** The HTTP URL for this project */
  url: Scalars['URI'];
  /** A view of the project */
  view?: Maybe<ProjectV2View>;
  /** Indicates if the object can be closed by the viewer. */
  viewerCanClose: Scalars['Boolean'];
  /** Indicates if the object can be reopened by the viewer. */
  viewerCanReopen: Scalars['Boolean'];
  /** Check if the current viewer can update this object. */
  viewerCanUpdate: Scalars['Boolean'];
  /** List of views in the project */
  views: ProjectV2ViewConnection;
  /** A workflow of the project */
  workflow?: Maybe<ProjectV2Workflow>;
  /** List of the workflows in the project */
  workflows: ProjectV2WorkflowConnection;
};


/** New projects that manage issues, pull requests and drafts using tables and boards. */
export type ProjectV2FieldArgs = {
  name: Scalars['String'];
};


/** New projects that manage issues, pull requests and drafts using tables and boards. */
export type ProjectV2FieldsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ProjectV2FieldOrder>;
};


/** New projects that manage issues, pull requests and drafts using tables and boards. */
export type ProjectV2ItemsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ProjectV2ItemOrder>;
};


/** New projects that manage issues, pull requests and drafts using tables and boards. */
export type ProjectV2RepositoriesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<RepositoryOrder>;
};


/** New projects that manage issues, pull requests and drafts using tables and boards. */
export type ProjectV2TeamsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<TeamOrder>;
};


/** New projects that manage issues, pull requests and drafts using tables and boards. */
export type ProjectV2ViewArgs = {
  number: Scalars['Int'];
};


/** New projects that manage issues, pull requests and drafts using tables and boards. */
export type ProjectV2ViewsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ProjectV2ViewOrder>;
};


/** New projects that manage issues, pull requests and drafts using tables and boards. */
export type ProjectV2WorkflowArgs = {
  number: Scalars['Int'];
};


/** New projects that manage issues, pull requests and drafts using tables and boards. */
export type ProjectV2WorkflowsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ProjectV2WorkflowOrder>;
};

/** The connection type for ProjectV2. */
export type ProjectV2Connection = {
  __typename?: 'ProjectV2Connection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<ProjectV2Edge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<ProjectV2>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** The type of a project field. */
export type ProjectV2CustomFieldType =
  /** Date */
  | 'DATE'
  /** Number */
  | 'NUMBER'
  /** Single Select */
  | 'SINGLE_SELECT'
  /** Text */
  | 'TEXT';

/** An edge in a connection. */
export type ProjectV2Edge = {
  __typename?: 'ProjectV2Edge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<ProjectV2>;
};

/** A field inside a project. */
export type ProjectV2Field = Node & ProjectV2FieldCommon & {
  __typename?: 'ProjectV2Field';
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** The field's type. */
  dataType: ProjectV2FieldType;
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  id: Scalars['ID'];
  /** The project field's name. */
  name: Scalars['String'];
  /** The project that contains this field. */
  project: ProjectV2;
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
};

/** Common fields across different project field types */
export type ProjectV2FieldCommon = {
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** The field's type. */
  dataType: ProjectV2FieldType;
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  id: Scalars['ID'];
  /** The project field's name. */
  name: Scalars['String'];
  /** The project that contains this field. */
  project: ProjectV2;
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
};

/** Configurations for project fields. */
export type ProjectV2FieldConfiguration = ProjectV2Field | ProjectV2IterationField | ProjectV2SingleSelectField;

/** The connection type for ProjectV2FieldConfiguration. */
export type ProjectV2FieldConfigurationConnection = {
  __typename?: 'ProjectV2FieldConfigurationConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<ProjectV2FieldConfigurationEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<ProjectV2FieldConfiguration>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type ProjectV2FieldConfigurationEdge = {
  __typename?: 'ProjectV2FieldConfigurationEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<ProjectV2FieldConfiguration>;
};

/** The connection type for ProjectV2Field. */
export type ProjectV2FieldConnection = {
  __typename?: 'ProjectV2FieldConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<ProjectV2FieldEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<ProjectV2Field>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type ProjectV2FieldEdge = {
  __typename?: 'ProjectV2FieldEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<ProjectV2Field>;
};

/** Ordering options for project v2 field connections */
export type ProjectV2FieldOrder = {
  /** The ordering direction. */
  direction: OrderDirection;
  /** The field to order the project v2 fields by. */
  field: ProjectV2FieldOrderField;
};

/** Properties by which project v2 field connections can be ordered. */
export type ProjectV2FieldOrderField =
  /** Order project v2 fields by creation time */
  | 'CREATED_AT'
  /** Order project v2 fields by name */
  | 'NAME'
  /** Order project v2 fields by position */
  | 'POSITION';

/** The type of a project field. */
export type ProjectV2FieldType =
  /** Assignees */
  | 'ASSIGNEES'
  /** Date */
  | 'DATE'
  /** Iteration */
  | 'ITERATION'
  /** Labels */
  | 'LABELS'
  /** Linked Pull Requests */
  | 'LINKED_PULL_REQUESTS'
  /** Milestone */
  | 'MILESTONE'
  /** Number */
  | 'NUMBER'
  /** Repository */
  | 'REPOSITORY'
  /** Reviewers */
  | 'REVIEWERS'
  /** Single Select */
  | 'SINGLE_SELECT'
  /** Text */
  | 'TEXT'
  /** Title */
  | 'TITLE'
  /** Tracked by */
  | 'TRACKED_BY'
  /** Tracks */
  | 'TRACKS';

/** The values that can be used to update a field of an item inside a Project. Only 1 value can be updated at a time. */
export type ProjectV2FieldValue = {
  /** The ISO 8601 date to set on the field. */
  date?: InputMaybe<Scalars['Date']>;
  /** The id of the iteration to set on the field. */
  iterationId?: InputMaybe<Scalars['String']>;
  /** The number to set on the field. */
  number?: InputMaybe<Scalars['Float']>;
  /** The id of the single select option to set on the field. */
  singleSelectOptionId?: InputMaybe<Scalars['String']>;
  /** The text to set on the field. */
  text?: InputMaybe<Scalars['String']>;
};

/** Ways in which to filter lists of projects. */
export type ProjectV2Filters = {
  /** List project v2 filtered by the state given. */
  state?: InputMaybe<ProjectV2State>;
};

/** An item within a Project. */
export type ProjectV2Item = Node & {
  __typename?: 'ProjectV2Item';
  /** The content of the referenced draft issue, issue, or pull request */
  content?: Maybe<ProjectV2ItemContent>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** The actor who created the item. */
  creator?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** A specific field value given a field name */
  fieldValueByName?: Maybe<ProjectV2ItemFieldValue>;
  /** List of field values */
  fieldValues: ProjectV2ItemFieldValueConnection;
  id: Scalars['ID'];
  /** Whether the item is archived. */
  isArchived: Scalars['Boolean'];
  /** The project that contains this item. */
  project: ProjectV2;
  /** The type of the item. */
  type: ProjectV2ItemType;
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
};


/** An item within a Project. */
export type ProjectV2ItemFieldValueByNameArgs = {
  name: Scalars['String'];
};


/** An item within a Project. */
export type ProjectV2ItemFieldValuesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ProjectV2ItemFieldValueOrder>;
};

/** The connection type for ProjectV2Item. */
export type ProjectV2ItemConnection = {
  __typename?: 'ProjectV2ItemConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<ProjectV2ItemEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<ProjectV2Item>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** Types that can be inside Project Items. */
export type ProjectV2ItemContent = DraftIssue | Issue | PullRequest;

/** An edge in a connection. */
export type ProjectV2ItemEdge = {
  __typename?: 'ProjectV2ItemEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<ProjectV2Item>;
};

/** The value of a date field in a Project item. */
export type ProjectV2ItemFieldDateValue = Node & ProjectV2ItemFieldValueCommon & {
  __typename?: 'ProjectV2ItemFieldDateValue';
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** The actor who created the item. */
  creator?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** Date value for the field */
  date?: Maybe<Scalars['Date']>;
  /** The project field that contains this value. */
  field: ProjectV2FieldConfiguration;
  id: Scalars['ID'];
  /** The project item that contains this value. */
  item: ProjectV2Item;
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
};

/** The value of an iteration field in a Project item. */
export type ProjectV2ItemFieldIterationValue = Node & ProjectV2ItemFieldValueCommon & {
  __typename?: 'ProjectV2ItemFieldIterationValue';
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** The actor who created the item. */
  creator?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** The duration of the iteration in days. */
  duration: Scalars['Int'];
  /** The project field that contains this value. */
  field: ProjectV2FieldConfiguration;
  id: Scalars['ID'];
  /** The project item that contains this value. */
  item: ProjectV2Item;
  /** The ID of the iteration. */
  iterationId: Scalars['String'];
  /** The start date of the iteration. */
  startDate: Scalars['Date'];
  /** The title of the iteration. */
  title: Scalars['String'];
  /** The title of the iteration, with HTML. */
  titleHTML: Scalars['String'];
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
};

/** The value of the labels field in a Project item. */
export type ProjectV2ItemFieldLabelValue = {
  __typename?: 'ProjectV2ItemFieldLabelValue';
  /** The field that contains this value. */
  field: ProjectV2FieldConfiguration;
  /** Labels value of a field */
  labels?: Maybe<LabelConnection>;
};


/** The value of the labels field in a Project item. */
export type ProjectV2ItemFieldLabelValueLabelsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};

/** The value of a milestone field in a Project item. */
export type ProjectV2ItemFieldMilestoneValue = {
  __typename?: 'ProjectV2ItemFieldMilestoneValue';
  /** The field that contains this value. */
  field: ProjectV2FieldConfiguration;
  /** Milestone value of a field */
  milestone?: Maybe<Milestone>;
};

/** The value of a number field in a Project item. */
export type ProjectV2ItemFieldNumberValue = Node & ProjectV2ItemFieldValueCommon & {
  __typename?: 'ProjectV2ItemFieldNumberValue';
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** The actor who created the item. */
  creator?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** The project field that contains this value. */
  field: ProjectV2FieldConfiguration;
  id: Scalars['ID'];
  /** The project item that contains this value. */
  item: ProjectV2Item;
  /** Number as a float(8) */
  number?: Maybe<Scalars['Float']>;
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
};

/** The value of a pull request field in a Project item. */
export type ProjectV2ItemFieldPullRequestValue = {
  __typename?: 'ProjectV2ItemFieldPullRequestValue';
  /** The field that contains this value. */
  field: ProjectV2FieldConfiguration;
  /** The pull requests for this field */
  pullRequests?: Maybe<PullRequestConnection>;
};


/** The value of a pull request field in a Project item. */
export type ProjectV2ItemFieldPullRequestValuePullRequestsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<PullRequestOrder>;
};

/** The value of a repository field in a Project item. */
export type ProjectV2ItemFieldRepositoryValue = {
  __typename?: 'ProjectV2ItemFieldRepositoryValue';
  /** The field that contains this value. */
  field: ProjectV2FieldConfiguration;
  /** The repository for this field. */
  repository?: Maybe<Repository>;
};

/** The value of a reviewers field in a Project item. */
export type ProjectV2ItemFieldReviewerValue = {
  __typename?: 'ProjectV2ItemFieldReviewerValue';
  /** The field that contains this value. */
  field: ProjectV2FieldConfiguration;
  /** The reviewers for this field. */
  reviewers?: Maybe<RequestedReviewerConnection>;
};


/** The value of a reviewers field in a Project item. */
export type ProjectV2ItemFieldReviewerValueReviewersArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};

/** The value of a single select field in a Project item. */
export type ProjectV2ItemFieldSingleSelectValue = Node & ProjectV2ItemFieldValueCommon & {
  __typename?: 'ProjectV2ItemFieldSingleSelectValue';
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** The actor who created the item. */
  creator?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** The project field that contains this value. */
  field: ProjectV2FieldConfiguration;
  id: Scalars['ID'];
  /** The project item that contains this value. */
  item: ProjectV2Item;
  /** The name of the selected single select option. */
  name?: Maybe<Scalars['String']>;
  /** The html name of the selected single select option. */
  nameHTML?: Maybe<Scalars['String']>;
  /** The id of the selected single select option. */
  optionId?: Maybe<Scalars['String']>;
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
};

/** The value of a text field in a Project item. */
export type ProjectV2ItemFieldTextValue = Node & ProjectV2ItemFieldValueCommon & {
  __typename?: 'ProjectV2ItemFieldTextValue';
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** The actor who created the item. */
  creator?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** The project field that contains this value. */
  field: ProjectV2FieldConfiguration;
  id: Scalars['ID'];
  /** The project item that contains this value. */
  item: ProjectV2Item;
  /** Text value of a field */
  text?: Maybe<Scalars['String']>;
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
};

/** The value of a user field in a Project item. */
export type ProjectV2ItemFieldUserValue = {
  __typename?: 'ProjectV2ItemFieldUserValue';
  /** The field that contains this value. */
  field: ProjectV2FieldConfiguration;
  /** The users for this field */
  users?: Maybe<UserConnection>;
};


/** The value of a user field in a Project item. */
export type ProjectV2ItemFieldUserValueUsersArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};

/** Project field values */
export type ProjectV2ItemFieldValue = ProjectV2ItemFieldDateValue | ProjectV2ItemFieldIterationValue | ProjectV2ItemFieldLabelValue | ProjectV2ItemFieldMilestoneValue | ProjectV2ItemFieldNumberValue | ProjectV2ItemFieldPullRequestValue | ProjectV2ItemFieldRepositoryValue | ProjectV2ItemFieldReviewerValue | ProjectV2ItemFieldSingleSelectValue | ProjectV2ItemFieldTextValue | ProjectV2ItemFieldUserValue;

/** Common fields across different project field value types */
export type ProjectV2ItemFieldValueCommon = {
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** The actor who created the item. */
  creator?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** The project field that contains this value. */
  field: ProjectV2FieldConfiguration;
  id: Scalars['ID'];
  /** The project item that contains this value. */
  item: ProjectV2Item;
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
};

/** The connection type for ProjectV2ItemFieldValue. */
export type ProjectV2ItemFieldValueConnection = {
  __typename?: 'ProjectV2ItemFieldValueConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<ProjectV2ItemFieldValueEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<ProjectV2ItemFieldValue>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type ProjectV2ItemFieldValueEdge = {
  __typename?: 'ProjectV2ItemFieldValueEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<ProjectV2ItemFieldValue>;
};

/** Ordering options for project v2 item field value connections */
export type ProjectV2ItemFieldValueOrder = {
  /** The ordering direction. */
  direction: OrderDirection;
  /** The field to order the project v2 item field values by. */
  field: ProjectV2ItemFieldValueOrderField;
};

/** Properties by which project v2 item field value connections can be ordered. */
export type ProjectV2ItemFieldValueOrderField =
  /** Order project v2 item field values by the their position in the project */
  | 'POSITION';

/** Ordering options for project v2 item connections */
export type ProjectV2ItemOrder = {
  /** The ordering direction. */
  direction: OrderDirection;
  /** The field to order the project v2 items by. */
  field: ProjectV2ItemOrderField;
};

/** Properties by which project v2 item connections can be ordered. */
export type ProjectV2ItemOrderField =
  /** Order project v2 items by the their position in the project */
  | 'POSITION';

/** The type of a project item. */
export type ProjectV2ItemType =
  /** Draft Issue */
  | 'DRAFT_ISSUE'
  /** Issue */
  | 'ISSUE'
  /** Pull Request */
  | 'PULL_REQUEST'
  /** Redacted Item */
  | 'REDACTED';

/** An iteration field inside a project. */
export type ProjectV2IterationField = Node & ProjectV2FieldCommon & {
  __typename?: 'ProjectV2IterationField';
  /** Iteration configuration settings */
  configuration: ProjectV2IterationFieldConfiguration;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** The field's type. */
  dataType: ProjectV2FieldType;
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  id: Scalars['ID'];
  /** The project field's name. */
  name: Scalars['String'];
  /** The project that contains this field. */
  project: ProjectV2;
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
};

/** Iteration field configuration for a project. */
export type ProjectV2IterationFieldConfiguration = {
  __typename?: 'ProjectV2IterationFieldConfiguration';
  /** The iteration's completed iterations */
  completedIterations: Array<ProjectV2IterationFieldIteration>;
  /** The iteration's duration in days */
  duration: Scalars['Int'];
  /** The iteration's iterations */
  iterations: Array<ProjectV2IterationFieldIteration>;
  /** The iteration's start day of the week */
  startDay: Scalars['Int'];
};

/** Iteration field iteration settings for a project. */
export type ProjectV2IterationFieldIteration = {
  __typename?: 'ProjectV2IterationFieldIteration';
  /** The iteration's duration in days */
  duration: Scalars['Int'];
  /** The iteration's ID. */
  id: Scalars['String'];
  /** The iteration's start date */
  startDate: Scalars['Date'];
  /** The iteration's title. */
  title: Scalars['String'];
  /** The iteration's html title. */
  titleHTML: Scalars['String'];
};

/** Ways in which lists of projects can be ordered upon return. */
export type ProjectV2Order = {
  /** The direction in which to order projects by the specified field. */
  direction: OrderDirection;
  /** The field in which to order projects by. */
  field: ProjectV2OrderField;
};

/** Properties by which projects can be ordered. */
export type ProjectV2OrderField =
  /** The project's date and time of creation */
  | 'CREATED_AT'
  /** The project's number */
  | 'NUMBER'
  /** The project's title */
  | 'TITLE'
  /** The project's date and time of update */
  | 'UPDATED_AT';

/** Represents an owner of a project (beta). */
export type ProjectV2Owner = {
  id: Scalars['ID'];
  /** Find a project by number. */
  projectV2?: Maybe<ProjectV2>;
  /** A list of projects under the owner. */
  projectsV2: ProjectV2Connection;
};


/** Represents an owner of a project (beta). */
export type ProjectV2OwnerProjectV2Args = {
  number: Scalars['Int'];
};


/** Represents an owner of a project (beta). */
export type ProjectV2OwnerProjectsV2Args = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ProjectV2Order>;
  query?: InputMaybe<Scalars['String']>;
};

/** Recent projects for the owner. */
export type ProjectV2Recent = {
  /** Recent projects that this user has modified in the context of the owner. */
  recentProjects: ProjectV2Connection;
};


/** Recent projects for the owner. */
export type ProjectV2RecentRecentProjectsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};

/** A single select field inside a project. */
export type ProjectV2SingleSelectField = Node & ProjectV2FieldCommon & {
  __typename?: 'ProjectV2SingleSelectField';
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** The field's type. */
  dataType: ProjectV2FieldType;
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  id: Scalars['ID'];
  /** The project field's name. */
  name: Scalars['String'];
  /** Options for the single select field */
  options: Array<ProjectV2SingleSelectFieldOption>;
  /** The project that contains this field. */
  project: ProjectV2;
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
};

/** Single select field option for a configuration for a project. */
export type ProjectV2SingleSelectFieldOption = {
  __typename?: 'ProjectV2SingleSelectFieldOption';
  /** The option's ID. */
  id: Scalars['String'];
  /** The option's name. */
  name: Scalars['String'];
  /** The option's html name. */
  nameHTML: Scalars['String'];
};

/** The display color of a single-select field option. */
export type ProjectV2SingleSelectFieldOptionColor =
  /** BLUE */
  | 'BLUE'
  /** GRAY */
  | 'GRAY'
  /** GREEN */
  | 'GREEN'
  /** ORANGE */
  | 'ORANGE'
  /** PINK */
  | 'PINK'
  /** PURPLE */
  | 'PURPLE'
  /** RED */
  | 'RED'
  /** YELLOW */
  | 'YELLOW';

/** Represents a single select field option */
export type ProjectV2SingleSelectFieldOptionInput = {
  /** The display color of the option */
  color: ProjectV2SingleSelectFieldOptionColor;
  /** The description text of the option */
  description: Scalars['String'];
  /** The name of the option */
  name: Scalars['String'];
};

/** Represents a sort by field and direction. */
export type ProjectV2SortBy = {
  __typename?: 'ProjectV2SortBy';
  /** The direction of the sorting. Possible values are ASC and DESC. */
  direction: OrderDirection;
  /** The field by which items are sorted. */
  field: ProjectV2Field;
};

/** The connection type for ProjectV2SortBy. */
export type ProjectV2SortByConnection = {
  __typename?: 'ProjectV2SortByConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<ProjectV2SortByEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<ProjectV2SortBy>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type ProjectV2SortByEdge = {
  __typename?: 'ProjectV2SortByEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<ProjectV2SortBy>;
};

/** Represents a sort by field and direction. */
export type ProjectV2SortByField = {
  __typename?: 'ProjectV2SortByField';
  /** The direction of the sorting. Possible values are ASC and DESC. */
  direction: OrderDirection;
  /** The field by which items are sorted. */
  field: ProjectV2FieldConfiguration;
};

/** The connection type for ProjectV2SortByField. */
export type ProjectV2SortByFieldConnection = {
  __typename?: 'ProjectV2SortByFieldConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<ProjectV2SortByFieldEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<ProjectV2SortByField>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type ProjectV2SortByFieldEdge = {
  __typename?: 'ProjectV2SortByFieldEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<ProjectV2SortByField>;
};

/** The possible states of a project v2. */
export type ProjectV2State =
  /** A project v2 that has been closed */
  | 'CLOSED'
  /** A project v2 that is still open */
  | 'OPEN';

/** A view within a ProjectV2. */
export type ProjectV2View = Node & {
  __typename?: 'ProjectV2View';
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** The view's visible fields. */
  fields?: Maybe<ProjectV2FieldConfigurationConnection>;
  /** The project view's filter. */
  filter?: Maybe<Scalars['String']>;
  /**
   * The view's group-by field.
   * @deprecated The `ProjectV2View#order_by` API is deprecated in favour of the more capable `ProjectV2View#group_by_field` API. Check out the `ProjectV2View#group_by_fields` API as an example for the more capable alternative. Removal on 2023-04-01 UTC.
   */
  groupBy?: Maybe<ProjectV2FieldConnection>;
  /** The view's group-by field. */
  groupByFields?: Maybe<ProjectV2FieldConfigurationConnection>;
  id: Scalars['ID'];
  /** The project view's layout. */
  layout: ProjectV2ViewLayout;
  /** The project view's name. */
  name: Scalars['String'];
  /** The project view's number. */
  number: Scalars['Int'];
  /** The project that contains this view. */
  project: ProjectV2;
  /**
   * The view's sort-by config.
   * @deprecated The `ProjectV2View#sort_by` API is deprecated in favour of the more capable `ProjectV2View#sort_by_fields` API. Check out the `ProjectV2View#sort_by_fields` API as an example for the more capable alternative. Removal on 2023-04-01 UTC.
   */
  sortBy?: Maybe<ProjectV2SortByConnection>;
  /** The view's sort-by config. */
  sortByFields?: Maybe<ProjectV2SortByFieldConnection>;
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
  /**
   * The view's vertical-group-by field.
   * @deprecated The `ProjectV2View#vertical_group_by` API is deprecated in favour of the more capable `ProjectV2View#vertical_group_by_fields` API. Check out the `ProjectV2View#vertical_group_by_fields` API as an example for the more capable alternative. Removal on 2023-04-01 UTC.
   */
  verticalGroupBy?: Maybe<ProjectV2FieldConnection>;
  /** The view's vertical-group-by field. */
  verticalGroupByFields?: Maybe<ProjectV2FieldConfigurationConnection>;
  /**
   * The view's visible fields.
   * @deprecated The `ProjectV2View#visibleFields` API is deprecated in favour of the more capable `ProjectV2View#fields` API. Check out the `ProjectV2View#fields` API as an example for the more capable alternative. Removal on 2023-01-01 UTC.
   */
  visibleFields?: Maybe<ProjectV2FieldConnection>;
};


/** A view within a ProjectV2. */
export type ProjectV2ViewFieldsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ProjectV2FieldOrder>;
};


/** A view within a ProjectV2. */
export type ProjectV2ViewGroupByArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ProjectV2FieldOrder>;
};


/** A view within a ProjectV2. */
export type ProjectV2ViewGroupByFieldsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ProjectV2FieldOrder>;
};


/** A view within a ProjectV2. */
export type ProjectV2ViewSortByArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A view within a ProjectV2. */
export type ProjectV2ViewSortByFieldsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A view within a ProjectV2. */
export type ProjectV2ViewVerticalGroupByArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ProjectV2FieldOrder>;
};


/** A view within a ProjectV2. */
export type ProjectV2ViewVerticalGroupByFieldsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ProjectV2FieldOrder>;
};


/** A view within a ProjectV2. */
export type ProjectV2ViewVisibleFieldsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ProjectV2FieldOrder>;
};

/** The connection type for ProjectV2View. */
export type ProjectV2ViewConnection = {
  __typename?: 'ProjectV2ViewConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<ProjectV2ViewEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<ProjectV2View>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type ProjectV2ViewEdge = {
  __typename?: 'ProjectV2ViewEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<ProjectV2View>;
};

/** The layout of a project v2 view. */
export type ProjectV2ViewLayout =
  /** Board layout */
  | 'BOARD_LAYOUT'
  /** Roadmap layout */
  | 'ROADMAP_LAYOUT'
  /** Table layout */
  | 'TABLE_LAYOUT';

/** Ordering options for project v2 view connections */
export type ProjectV2ViewOrder = {
  /** The ordering direction. */
  direction: OrderDirection;
  /** The field to order the project v2 views by. */
  field: ProjectV2ViewOrderField;
};

/** Properties by which project v2 view connections can be ordered. */
export type ProjectV2ViewOrderField =
  /** Order project v2 views by creation time */
  | 'CREATED_AT'
  /** Order project v2 views by name */
  | 'NAME'
  /** Order project v2 views by position */
  | 'POSITION';

/** A workflow inside a project. */
export type ProjectV2Workflow = Node & {
  __typename?: 'ProjectV2Workflow';
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** The workflows' enabled state. */
  enabled: Scalars['Boolean'];
  id: Scalars['ID'];
  /** The workflows' name. */
  name: Scalars['String'];
  /** The workflows' number. */
  number: Scalars['Int'];
  /** The project that contains this workflow. */
  project: ProjectV2;
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
};

/** The connection type for ProjectV2Workflow. */
export type ProjectV2WorkflowConnection = {
  __typename?: 'ProjectV2WorkflowConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<ProjectV2WorkflowEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<ProjectV2Workflow>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type ProjectV2WorkflowEdge = {
  __typename?: 'ProjectV2WorkflowEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<ProjectV2Workflow>;
};

/** Ordering options for project v2 workflows connections */
export type ProjectV2WorkflowOrder = {
  /** The ordering direction. */
  direction: OrderDirection;
  /** The field to order the project v2 workflows by. */
  field: ProjectV2WorkflowsOrderField;
};

/** Properties by which project workflows can be ordered. */
export type ProjectV2WorkflowsOrderField =
  /** The workflows' date and time of creation */
  | 'CREATED_AT'
  /** The workflows' name */
  | 'NAME'
  /** The workflows' number */
  | 'NUMBER'
  /** The workflows' date and time of update */
  | 'UPDATED_AT';

/** A user's public key. */
export type PublicKey = Node & {
  __typename?: 'PublicKey';
  /** The last time this authorization was used to perform an action. Values will be null for keys not owned by the user. */
  accessedAt?: Maybe<Scalars['DateTime']>;
  /**
   * Identifies the date and time when the key was created. Keys created before
   * March 5th, 2014 have inaccurate values. Values will be null for keys not owned by the user.
   */
  createdAt?: Maybe<Scalars['DateTime']>;
  /** The fingerprint for this PublicKey. */
  fingerprint: Scalars['String'];
  id: Scalars['ID'];
  /** Whether this PublicKey is read-only or not. Values will be null for keys not owned by the user. */
  isReadOnly?: Maybe<Scalars['Boolean']>;
  /** The public key string. */
  key: Scalars['String'];
  /**
   * Identifies the date and time when the key was updated. Keys created before
   * March 5th, 2014 may have inaccurate values. Values will be null for keys not
   * owned by the user.
   */
  updatedAt?: Maybe<Scalars['DateTime']>;
};

/** The connection type for PublicKey. */
export type PublicKeyConnection = {
  __typename?: 'PublicKeyConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<PublicKeyEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<PublicKey>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type PublicKeyEdge = {
  __typename?: 'PublicKeyEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<PublicKey>;
};

/** Autogenerated input type of PublishSponsorsTier */
export type PublishSponsorsTierInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the draft tier to publish. */
  tierId: Scalars['ID'];
};

/** Autogenerated return type of PublishSponsorsTier */
export type PublishSponsorsTierPayload = {
  __typename?: 'PublishSponsorsTierPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The tier that was published. */
  sponsorsTier?: Maybe<SponsorsTier>;
};

/** A repository pull request. */
export type PullRequest = Assignable & Closable & Comment & Labelable & Lockable & Node & ProjectV2Owner & Reactable & RepositoryNode & Subscribable & UniformResourceLocatable & Updatable & UpdatableComment & {
  __typename?: 'PullRequest';
  /** Reason that the conversation was locked. */
  activeLockReason?: Maybe<LockReason>;
  /** The number of additions in this pull request. */
  additions: Scalars['Int'];
  /** A list of Users assigned to this object. */
  assignees: UserConnection;
  /** The actor who authored the comment. */
  author?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Author's association with the subject of the comment. */
  authorAssociation: CommentAuthorAssociation;
  /** Returns the auto-merge request object if one exists for this pull request. */
  autoMergeRequest?: Maybe<AutoMergeRequest>;
  /** Identifies the base Ref associated with the pull request. */
  baseRef?: Maybe<Ref>;
  /** Identifies the name of the base Ref associated with the pull request, even if the ref has been deleted. */
  baseRefName: Scalars['String'];
  /** Identifies the oid of the base ref associated with the pull request, even if the ref has been deleted. */
  baseRefOid: Scalars['GitObjectID'];
  /** The repository associated with this pull request's base Ref. */
  baseRepository?: Maybe<Repository>;
  /** The body as Markdown. */
  body: Scalars['String'];
  /** The body rendered to HTML. */
  bodyHTML: Scalars['HTML'];
  /** The body rendered to text. */
  bodyText: Scalars['String'];
  /** The number of changed files in this pull request. */
  changedFiles: Scalars['Int'];
  /** The HTTP path for the checks of this pull request. */
  checksResourcePath: Scalars['URI'];
  /** The HTTP URL for the checks of this pull request. */
  checksUrl: Scalars['URI'];
  /** `true` if the pull request is closed */
  closed: Scalars['Boolean'];
  /** Identifies the date and time when the object was closed. */
  closedAt?: Maybe<Scalars['DateTime']>;
  /** List of issues that were may be closed by this pull request */
  closingIssuesReferences?: Maybe<IssueConnection>;
  /** A list of comments associated with the pull request. */
  comments: IssueCommentConnection;
  /** A list of commits present in this pull request's head branch not present in the base branch. */
  commits: PullRequestCommitConnection;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Check if this comment was created via an email reply. */
  createdViaEmail: Scalars['Boolean'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** The number of deletions in this pull request. */
  deletions: Scalars['Int'];
  /** The actor who edited this pull request's body. */
  editor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Lists the files changed within this pull request. */
  files?: Maybe<PullRequestChangedFileConnection>;
  /** Identifies the head Ref associated with the pull request. */
  headRef?: Maybe<Ref>;
  /** Identifies the name of the head Ref associated with the pull request, even if the ref has been deleted. */
  headRefName: Scalars['String'];
  /** Identifies the oid of the head ref associated with the pull request, even if the ref has been deleted. */
  headRefOid: Scalars['GitObjectID'];
  /** The repository associated with this pull request's head Ref. */
  headRepository?: Maybe<Repository>;
  /** The owner of the repository associated with this pull request's head Ref. */
  headRepositoryOwner?: Maybe<Organization | User>;
  /** The hovercard information for this issue */
  hovercard: Hovercard;
  id: Scalars['ID'];
  /** Check if this comment was edited and includes an edit with the creation data */
  includesCreatedEdit: Scalars['Boolean'];
  /** The head and base repositories are different. */
  isCrossRepository: Scalars['Boolean'];
  /** Identifies if the pull request is a draft. */
  isDraft: Scalars['Boolean'];
  /** Is this pull request read by the viewer */
  isReadByViewer?: Maybe<Scalars['Boolean']>;
  /** A list of labels associated with the object. */
  labels?: Maybe<LabelConnection>;
  /** The moment the editor made the last edit */
  lastEditedAt?: Maybe<Scalars['DateTime']>;
  /** A list of latest reviews per user associated with the pull request. */
  latestOpinionatedReviews?: Maybe<PullRequestReviewConnection>;
  /** A list of latest reviews per user associated with the pull request that are not also pending review. */
  latestReviews?: Maybe<PullRequestReviewConnection>;
  /** `true` if the pull request is locked */
  locked: Scalars['Boolean'];
  /** Indicates whether maintainers can modify the pull request. */
  maintainerCanModify: Scalars['Boolean'];
  /** The commit that was created when this pull request was merged. */
  mergeCommit?: Maybe<Commit>;
  /** Whether or not the pull request can be merged based on the existence of merge conflicts. */
  mergeable: MergeableState;
  /** Whether or not the pull request was merged. */
  merged: Scalars['Boolean'];
  /** The date and time that the pull request was merged. */
  mergedAt?: Maybe<Scalars['DateTime']>;
  /** The actor who merged the pull request. */
  mergedBy?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the milestone associated with the pull request. */
  milestone?: Maybe<Milestone>;
  /** Identifies the pull request number. */
  number: Scalars['Int'];
  /** A list of Users that are participating in the Pull Request conversation. */
  participants: UserConnection;
  /** The permalink to the pull request. */
  permalink: Scalars['URI'];
  /**
   * The commit that GitHub automatically generated to test if this pull request
   * could be merged. This field will not return a value if the pull request is
   * merged, or if the test merge commit is still being generated. See the
   * `mergeable` field for more details on the mergeability of the pull request.
   */
  potentialMergeCommit?: Maybe<Commit>;
  /** List of project cards associated with this pull request. */
  projectCards: ProjectCardConnection;
  /** List of project items associated with this pull request. */
  projectItems: ProjectV2ItemConnection;
  /** Find a project by number. */
  projectV2?: Maybe<ProjectV2>;
  /** A list of projects under the owner. */
  projectsV2: ProjectV2Connection;
  /** Identifies when the comment was published at. */
  publishedAt?: Maybe<Scalars['DateTime']>;
  /** A list of reactions grouped by content left on the subject. */
  reactionGroups?: Maybe<Array<ReactionGroup>>;
  /** A list of Reactions left on the Issue. */
  reactions: ReactionConnection;
  /** The repository associated with this node. */
  repository: Repository;
  /** The HTTP path for this pull request. */
  resourcePath: Scalars['URI'];
  /** The HTTP path for reverting this pull request. */
  revertResourcePath: Scalars['URI'];
  /** The HTTP URL for reverting this pull request. */
  revertUrl: Scalars['URI'];
  /** The current status of this pull request with respect to code review. */
  reviewDecision?: Maybe<PullRequestReviewDecision>;
  /** A list of review requests associated with the pull request. */
  reviewRequests?: Maybe<ReviewRequestConnection>;
  /** The list of all review threads for this pull request. */
  reviewThreads: PullRequestReviewThreadConnection;
  /** A list of reviews associated with the pull request. */
  reviews?: Maybe<PullRequestReviewConnection>;
  /** Identifies the state of the pull request. */
  state: PullRequestState;
  /** A list of reviewer suggestions based on commit history and past review comments. */
  suggestedReviewers: Array<Maybe<SuggestedReviewer>>;
  /**
   * A list of events, comments, commits, etc. associated with the pull request.
   * @deprecated `timeline` will be removed Use PullRequest.timelineItems instead. Removal on 2020-10-01 UTC.
   */
  timeline: PullRequestTimelineConnection;
  /** A list of events, comments, commits, etc. associated with the pull request. */
  timelineItems: PullRequestTimelineItemsConnection;
  /** Identifies the pull request title. */
  title: Scalars['String'];
  /** Identifies the pull request title rendered to HTML. */
  titleHTML: Scalars['HTML'];
  /** Returns a count of how many comments this pull request has received. */
  totalCommentsCount?: Maybe<Scalars['Int']>;
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
  /** The HTTP URL for this pull request. */
  url: Scalars['URI'];
  /** A list of edits to this content. */
  userContentEdits?: Maybe<UserContentEditConnection>;
  /** Whether or not the viewer can apply suggestion. */
  viewerCanApplySuggestion: Scalars['Boolean'];
  /** Indicates if the object can be closed by the viewer. */
  viewerCanClose: Scalars['Boolean'];
  /** Check if the viewer can restore the deleted head ref. */
  viewerCanDeleteHeadRef: Scalars['Boolean'];
  /** Whether or not the viewer can disable auto-merge */
  viewerCanDisableAutoMerge: Scalars['Boolean'];
  /** Can the viewer edit files within this pull request. */
  viewerCanEditFiles: Scalars['Boolean'];
  /** Whether or not the viewer can enable auto-merge */
  viewerCanEnableAutoMerge: Scalars['Boolean'];
  /** Indicates whether the viewer can bypass branch protections and merge the pull request immediately */
  viewerCanMergeAsAdmin: Scalars['Boolean'];
  /** Can user react to this subject */
  viewerCanReact: Scalars['Boolean'];
  /** Indicates if the object can be reopened by the viewer. */
  viewerCanReopen: Scalars['Boolean'];
  /** Check if the viewer is able to change their subscription status for the repository. */
  viewerCanSubscribe: Scalars['Boolean'];
  /** Check if the current viewer can update this object. */
  viewerCanUpdate: Scalars['Boolean'];
  /**
   * Whether or not the viewer can update the head ref of this PR, by merging or rebasing the base ref.
   * If the head ref is up to date or unable to be updated by this user, this will return false.
   */
  viewerCanUpdateBranch: Scalars['Boolean'];
  /** Reasons why the current viewer can not update this comment. */
  viewerCannotUpdateReasons: Array<CommentCannotUpdateReason>;
  /** Did the viewer author this comment. */
  viewerDidAuthor: Scalars['Boolean'];
  /** The latest review given from the viewer. */
  viewerLatestReview?: Maybe<PullRequestReview>;
  /** The person who has requested the viewer for review on this pull request. */
  viewerLatestReviewRequest?: Maybe<ReviewRequest>;
  /** The merge body text for the viewer and method. */
  viewerMergeBodyText: Scalars['String'];
  /** The merge headline text for the viewer and method. */
  viewerMergeHeadlineText: Scalars['String'];
  /** Identifies if the viewer is watching, not watching, or ignoring the subscribable entity. */
  viewerSubscription?: Maybe<SubscriptionState>;
};


/** A repository pull request. */
export type PullRequestAssigneesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A repository pull request. */
export type PullRequestClosingIssuesReferencesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<IssueOrder>;
  userLinkedOnly?: InputMaybe<Scalars['Boolean']>;
};


/** A repository pull request. */
export type PullRequestCommentsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<IssueCommentOrder>;
};


/** A repository pull request. */
export type PullRequestCommitsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A repository pull request. */
export type PullRequestFilesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A repository pull request. */
export type PullRequestHovercardArgs = {
  includeNotificationContexts?: InputMaybe<Scalars['Boolean']>;
};


/** A repository pull request. */
export type PullRequestLabelsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<LabelOrder>;
};


/** A repository pull request. */
export type PullRequestLatestOpinionatedReviewsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  writersOnly?: InputMaybe<Scalars['Boolean']>;
};


/** A repository pull request. */
export type PullRequestLatestReviewsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A repository pull request. */
export type PullRequestParticipantsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A repository pull request. */
export type PullRequestProjectCardsArgs = {
  after?: InputMaybe<Scalars['String']>;
  archivedStates?: InputMaybe<Array<InputMaybe<ProjectCardArchivedState>>>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A repository pull request. */
export type PullRequestProjectItemsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  includeArchived?: InputMaybe<Scalars['Boolean']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A repository pull request. */
export type PullRequestProjectV2Args = {
  number: Scalars['Int'];
};


/** A repository pull request. */
export type PullRequestProjectsV2Args = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ProjectV2Order>;
  query?: InputMaybe<Scalars['String']>;
};


/** A repository pull request. */
export type PullRequestReactionsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  content?: InputMaybe<ReactionContent>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ReactionOrder>;
};


/** A repository pull request. */
export type PullRequestReviewRequestsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A repository pull request. */
export type PullRequestReviewThreadsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A repository pull request. */
export type PullRequestReviewsArgs = {
  after?: InputMaybe<Scalars['String']>;
  author?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  states?: InputMaybe<Array<PullRequestReviewState>>;
};


/** A repository pull request. */
export type PullRequestTimelineArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  since?: InputMaybe<Scalars['DateTime']>;
};


/** A repository pull request. */
export type PullRequestTimelineItemsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  itemTypes?: InputMaybe<Array<PullRequestTimelineItemsItemType>>;
  last?: InputMaybe<Scalars['Int']>;
  since?: InputMaybe<Scalars['DateTime']>;
  skip?: InputMaybe<Scalars['Int']>;
};


/** A repository pull request. */
export type PullRequestUserContentEditsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A repository pull request. */
export type PullRequestViewerMergeBodyTextArgs = {
  mergeType?: InputMaybe<PullRequestMergeMethod>;
};


/** A repository pull request. */
export type PullRequestViewerMergeHeadlineTextArgs = {
  mergeType?: InputMaybe<PullRequestMergeMethod>;
};

/** A file changed in a pull request. */
export type PullRequestChangedFile = {
  __typename?: 'PullRequestChangedFile';
  /** The number of additions to the file. */
  additions: Scalars['Int'];
  /** How the file was changed in this PullRequest */
  changeType: PatchStatus;
  /** The number of deletions to the file. */
  deletions: Scalars['Int'];
  /** The path of the file. */
  path: Scalars['String'];
  /** The state of the file for the viewer. */
  viewerViewedState: FileViewedState;
};

/** The connection type for PullRequestChangedFile. */
export type PullRequestChangedFileConnection = {
  __typename?: 'PullRequestChangedFileConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<PullRequestChangedFileEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<PullRequestChangedFile>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type PullRequestChangedFileEdge = {
  __typename?: 'PullRequestChangedFileEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<PullRequestChangedFile>;
};

/** Represents a Git commit part of a pull request. */
export type PullRequestCommit = Node & UniformResourceLocatable & {
  __typename?: 'PullRequestCommit';
  /** The Git commit object */
  commit: Commit;
  id: Scalars['ID'];
  /** The pull request this commit belongs to */
  pullRequest: PullRequest;
  /** The HTTP path for this pull request commit */
  resourcePath: Scalars['URI'];
  /** The HTTP URL for this pull request commit */
  url: Scalars['URI'];
};

/** Represents a commit comment thread part of a pull request. */
export type PullRequestCommitCommentThread = Node & RepositoryNode & {
  __typename?: 'PullRequestCommitCommentThread';
  /** The comments that exist in this thread. */
  comments: CommitCommentConnection;
  /** The commit the comments were made on. */
  commit: Commit;
  id: Scalars['ID'];
  /** The file the comments were made on. */
  path?: Maybe<Scalars['String']>;
  /** The position in the diff for the commit that the comment was made on. */
  position?: Maybe<Scalars['Int']>;
  /** The pull request this commit comment thread belongs to */
  pullRequest: PullRequest;
  /** The repository associated with this node. */
  repository: Repository;
};


/** Represents a commit comment thread part of a pull request. */
export type PullRequestCommitCommentThreadCommentsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};

/** The connection type for PullRequestCommit. */
export type PullRequestCommitConnection = {
  __typename?: 'PullRequestCommitConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<PullRequestCommitEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<PullRequestCommit>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type PullRequestCommitEdge = {
  __typename?: 'PullRequestCommitEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<PullRequestCommit>;
};

/** The connection type for PullRequest. */
export type PullRequestConnection = {
  __typename?: 'PullRequestConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<PullRequestEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<PullRequest>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** This aggregates pull requests opened by a user within one repository. */
export type PullRequestContributionsByRepository = {
  __typename?: 'PullRequestContributionsByRepository';
  /** The pull request contributions. */
  contributions: CreatedPullRequestContributionConnection;
  /** The repository in which the pull requests were opened. */
  repository: Repository;
};


/** This aggregates pull requests opened by a user within one repository. */
export type PullRequestContributionsByRepositoryContributionsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ContributionOrder>;
};

/** An edge in a connection. */
export type PullRequestEdge = {
  __typename?: 'PullRequestEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<PullRequest>;
};

/** Represents available types of methods to use when merging a pull request. */
export type PullRequestMergeMethod =
  /** Add all commits from the head branch to the base branch with a merge commit. */
  | 'MERGE'
  /** Add all commits from the head branch onto the base branch individually. */
  | 'REBASE'
  /** Combine all commits from the head branch into a single commit in the base branch. */
  | 'SQUASH';

/** Ways in which lists of issues can be ordered upon return. */
export type PullRequestOrder = {
  /** The direction in which to order pull requests by the specified field. */
  direction: OrderDirection;
  /** The field in which to order pull requests by. */
  field: PullRequestOrderField;
};

/** Properties by which pull_requests connections can be ordered. */
export type PullRequestOrderField =
  /** Order pull_requests by creation time */
  | 'CREATED_AT'
  /** Order pull_requests by update time */
  | 'UPDATED_AT';

/** A review object for a given pull request. */
export type PullRequestReview = Comment & Deletable & Node & Reactable & RepositoryNode & Updatable & UpdatableComment & {
  __typename?: 'PullRequestReview';
  /** The actor who authored the comment. */
  author?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Author's association with the subject of the comment. */
  authorAssociation: CommentAuthorAssociation;
  /** Indicates whether the author of this review has push access to the repository. */
  authorCanPushToRepository: Scalars['Boolean'];
  /** Identifies the pull request review body. */
  body: Scalars['String'];
  /** The body rendered to HTML. */
  bodyHTML: Scalars['HTML'];
  /** The body of this review rendered as plain text. */
  bodyText: Scalars['String'];
  /** A list of review comments for the current pull request review. */
  comments: PullRequestReviewCommentConnection;
  /** Identifies the commit associated with this pull request review. */
  commit?: Maybe<Commit>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Check if this comment was created via an email reply. */
  createdViaEmail: Scalars['Boolean'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** The actor who edited the comment. */
  editor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  id: Scalars['ID'];
  /** Check if this comment was edited and includes an edit with the creation data */
  includesCreatedEdit: Scalars['Boolean'];
  /** The moment the editor made the last edit */
  lastEditedAt?: Maybe<Scalars['DateTime']>;
  /** A list of teams that this review was made on behalf of. */
  onBehalfOf: TeamConnection;
  /** Identifies when the comment was published at. */
  publishedAt?: Maybe<Scalars['DateTime']>;
  /** Identifies the pull request associated with this pull request review. */
  pullRequest: PullRequest;
  /** A list of reactions grouped by content left on the subject. */
  reactionGroups?: Maybe<Array<ReactionGroup>>;
  /** A list of Reactions left on the Issue. */
  reactions: ReactionConnection;
  /** The repository associated with this node. */
  repository: Repository;
  /** The HTTP path permalink for this PullRequestReview. */
  resourcePath: Scalars['URI'];
  /** Identifies the current state of the pull request review. */
  state: PullRequestReviewState;
  /** Identifies when the Pull Request Review was submitted */
  submittedAt?: Maybe<Scalars['DateTime']>;
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
  /** The HTTP URL permalink for this PullRequestReview. */
  url: Scalars['URI'];
  /** A list of edits to this content. */
  userContentEdits?: Maybe<UserContentEditConnection>;
  /** Check if the current viewer can delete this object. */
  viewerCanDelete: Scalars['Boolean'];
  /** Can user react to this subject */
  viewerCanReact: Scalars['Boolean'];
  /** Check if the current viewer can update this object. */
  viewerCanUpdate: Scalars['Boolean'];
  /** Reasons why the current viewer can not update this comment. */
  viewerCannotUpdateReasons: Array<CommentCannotUpdateReason>;
  /** Did the viewer author this comment. */
  viewerDidAuthor: Scalars['Boolean'];
};


/** A review object for a given pull request. */
export type PullRequestReviewCommentsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A review object for a given pull request. */
export type PullRequestReviewOnBehalfOfArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A review object for a given pull request. */
export type PullRequestReviewReactionsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  content?: InputMaybe<ReactionContent>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ReactionOrder>;
};


/** A review object for a given pull request. */
export type PullRequestReviewUserContentEditsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};

/** A review comment associated with a given repository pull request. */
export type PullRequestReviewComment = Comment & Deletable & Minimizable & Node & Reactable & RepositoryNode & Updatable & UpdatableComment & {
  __typename?: 'PullRequestReviewComment';
  /** The actor who authored the comment. */
  author?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Author's association with the subject of the comment. */
  authorAssociation: CommentAuthorAssociation;
  /** The comment body of this review comment. */
  body: Scalars['String'];
  /** The body rendered to HTML. */
  bodyHTML: Scalars['HTML'];
  /** The comment body of this review comment rendered as plain text. */
  bodyText: Scalars['String'];
  /** Identifies the commit associated with the comment. */
  commit?: Maybe<Commit>;
  /** Identifies when the comment was created. */
  createdAt: Scalars['DateTime'];
  /** Check if this comment was created via an email reply. */
  createdViaEmail: Scalars['Boolean'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** The diff hunk to which the comment applies. */
  diffHunk: Scalars['String'];
  /** Identifies when the comment was created in a draft state. */
  draftedAt: Scalars['DateTime'];
  /** The actor who edited the comment. */
  editor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  id: Scalars['ID'];
  /** Check if this comment was edited and includes an edit with the creation data */
  includesCreatedEdit: Scalars['Boolean'];
  /** Returns whether or not a comment has been minimized. */
  isMinimized: Scalars['Boolean'];
  /** The moment the editor made the last edit */
  lastEditedAt?: Maybe<Scalars['DateTime']>;
  /** The end line number on the file to which the comment applies */
  line?: Maybe<Scalars['Int']>;
  /**
   * Returns why the comment was minimized. One of `abuse`, `off-topic`,
   * `outdated`, `resolved`, `duplicate` and `spam`. Note that the case and
   * formatting of these values differs from the inputs to the `MinimizeComment` mutation.
   */
  minimizedReason?: Maybe<Scalars['String']>;
  /** Identifies the original commit associated with the comment. */
  originalCommit?: Maybe<Commit>;
  /** The end line number on the file to which the comment applied when it was first created */
  originalLine?: Maybe<Scalars['Int']>;
  /**
   * The original line index in the diff to which the comment applies.
   * @deprecated We are phasing out diff-relative positioning for PR comments Removal on 2023-10-01 UTC.
   */
  originalPosition: Scalars['Int'];
  /** The start line number on the file to which the comment applied when it was first created */
  originalStartLine?: Maybe<Scalars['Int']>;
  /** Identifies when the comment body is outdated */
  outdated: Scalars['Boolean'];
  /** The path to which the comment applies. */
  path: Scalars['String'];
  /**
   * The line index in the diff to which the comment applies.
   * @deprecated We are phasing out diff-relative positioning for PR comments Use the `line` and `startLine` fields instead, which are file line numbers instead of diff line numbers Removal on 2023-10-01 UTC.
   */
  position?: Maybe<Scalars['Int']>;
  /** Identifies when the comment was published at. */
  publishedAt?: Maybe<Scalars['DateTime']>;
  /** The pull request associated with this review comment. */
  pullRequest: PullRequest;
  /** The pull request review associated with this review comment. */
  pullRequestReview?: Maybe<PullRequestReview>;
  /** A list of reactions grouped by content left on the subject. */
  reactionGroups?: Maybe<Array<ReactionGroup>>;
  /** A list of Reactions left on the Issue. */
  reactions: ReactionConnection;
  /** The comment this is a reply to. */
  replyTo?: Maybe<PullRequestReviewComment>;
  /** The repository associated with this node. */
  repository: Repository;
  /** The HTTP path permalink for this review comment. */
  resourcePath: Scalars['URI'];
  /** The start line number on the file to which the comment applies */
  startLine?: Maybe<Scalars['Int']>;
  /** Identifies the state of the comment. */
  state: PullRequestReviewCommentState;
  /** The level at which the comments in the corresponding thread are targeted, can be a diff line or a file */
  subjectType: PullRequestReviewThreadSubjectType;
  /** Identifies when the comment was last updated. */
  updatedAt: Scalars['DateTime'];
  /** The HTTP URL permalink for this review comment. */
  url: Scalars['URI'];
  /** A list of edits to this content. */
  userContentEdits?: Maybe<UserContentEditConnection>;
  /** Check if the current viewer can delete this object. */
  viewerCanDelete: Scalars['Boolean'];
  /** Check if the current viewer can minimize this object. */
  viewerCanMinimize: Scalars['Boolean'];
  /** Can user react to this subject */
  viewerCanReact: Scalars['Boolean'];
  /** Check if the current viewer can update this object. */
  viewerCanUpdate: Scalars['Boolean'];
  /** Reasons why the current viewer can not update this comment. */
  viewerCannotUpdateReasons: Array<CommentCannotUpdateReason>;
  /** Did the viewer author this comment. */
  viewerDidAuthor: Scalars['Boolean'];
};


/** A review comment associated with a given repository pull request. */
export type PullRequestReviewCommentReactionsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  content?: InputMaybe<ReactionContent>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ReactionOrder>;
};


/** A review comment associated with a given repository pull request. */
export type PullRequestReviewCommentUserContentEditsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};

/** The connection type for PullRequestReviewComment. */
export type PullRequestReviewCommentConnection = {
  __typename?: 'PullRequestReviewCommentConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<PullRequestReviewCommentEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<PullRequestReviewComment>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type PullRequestReviewCommentEdge = {
  __typename?: 'PullRequestReviewCommentEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<PullRequestReviewComment>;
};

/** The possible states of a pull request review comment. */
export type PullRequestReviewCommentState =
  /** A comment that is part of a pending review */
  | 'PENDING'
  /** A comment that is part of a submitted review */
  | 'SUBMITTED';

/** The connection type for PullRequestReview. */
export type PullRequestReviewConnection = {
  __typename?: 'PullRequestReviewConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<PullRequestReviewEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<PullRequestReview>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** This aggregates pull request reviews made by a user within one repository. */
export type PullRequestReviewContributionsByRepository = {
  __typename?: 'PullRequestReviewContributionsByRepository';
  /** The pull request review contributions. */
  contributions: CreatedPullRequestReviewContributionConnection;
  /** The repository in which the pull request reviews were made. */
  repository: Repository;
};


/** This aggregates pull request reviews made by a user within one repository. */
export type PullRequestReviewContributionsByRepositoryContributionsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ContributionOrder>;
};

/** The review status of a pull request. */
export type PullRequestReviewDecision =
  /** The pull request has received an approving review. */
  | 'APPROVED'
  /** Changes have been requested on the pull request. */
  | 'CHANGES_REQUESTED'
  /** A review is required before the pull request can be merged. */
  | 'REVIEW_REQUIRED';

/** An edge in a connection. */
export type PullRequestReviewEdge = {
  __typename?: 'PullRequestReviewEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<PullRequestReview>;
};

/** The possible events to perform on a pull request review. */
export type PullRequestReviewEvent =
  /** Submit feedback and approve merging these changes. */
  | 'APPROVE'
  /** Submit general feedback without explicit approval. */
  | 'COMMENT'
  /** Dismiss review so it now longer effects merging. */
  | 'DISMISS'
  /** Submit feedback that must be addressed before merging. */
  | 'REQUEST_CHANGES';

/** The possible states of a pull request review. */
export type PullRequestReviewState =
  /** A review allowing the pull request to merge. */
  | 'APPROVED'
  /** A review blocking the pull request from merging. */
  | 'CHANGES_REQUESTED'
  /** An informational review. */
  | 'COMMENTED'
  /** A review that has been dismissed. */
  | 'DISMISSED'
  /** A review that has not yet been submitted. */
  | 'PENDING';

/** A threaded list of comments for a given pull request. */
export type PullRequestReviewThread = Node & {
  __typename?: 'PullRequestReviewThread';
  /** A list of pull request comments associated with the thread. */
  comments: PullRequestReviewCommentConnection;
  /** The side of the diff on which this thread was placed. */
  diffSide: DiffSide;
  id: Scalars['ID'];
  /** Whether or not the thread has been collapsed (resolved) */
  isCollapsed: Scalars['Boolean'];
  /** Indicates whether this thread was outdated by newer changes. */
  isOutdated: Scalars['Boolean'];
  /** Whether this thread has been resolved */
  isResolved: Scalars['Boolean'];
  /** The line in the file to which this thread refers */
  line?: Maybe<Scalars['Int']>;
  /** The original line in the file to which this thread refers. */
  originalLine?: Maybe<Scalars['Int']>;
  /** The original start line in the file to which this thread refers (multi-line only). */
  originalStartLine?: Maybe<Scalars['Int']>;
  /** Identifies the file path of this thread. */
  path: Scalars['String'];
  /** Identifies the pull request associated with this thread. */
  pullRequest: PullRequest;
  /** Identifies the repository associated with this thread. */
  repository: Repository;
  /** The user who resolved this thread */
  resolvedBy?: Maybe<User>;
  /** The side of the diff that the first line of the thread starts on (multi-line only) */
  startDiffSide?: Maybe<DiffSide>;
  /** The start line in the file to which this thread refers (multi-line only) */
  startLine?: Maybe<Scalars['Int']>;
  /** The level at which the comments in the corresponding thread are targeted, can be a diff line or a file */
  subjectType: PullRequestReviewThreadSubjectType;
  /** Indicates whether the current viewer can reply to this thread. */
  viewerCanReply: Scalars['Boolean'];
  /** Whether or not the viewer can resolve this thread */
  viewerCanResolve: Scalars['Boolean'];
  /** Whether or not the viewer can unresolve this thread */
  viewerCanUnresolve: Scalars['Boolean'];
};


/** A threaded list of comments for a given pull request. */
export type PullRequestReviewThreadCommentsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  skip?: InputMaybe<Scalars['Int']>;
};

/** Review comment threads for a pull request review. */
export type PullRequestReviewThreadConnection = {
  __typename?: 'PullRequestReviewThreadConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<PullRequestReviewThreadEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<PullRequestReviewThread>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type PullRequestReviewThreadEdge = {
  __typename?: 'PullRequestReviewThreadEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<PullRequestReviewThread>;
};

/** The possible subject types of a pull request review comment. */
export type PullRequestReviewThreadSubjectType =
  /** A comment that has been made against the file of a pull request */
  | 'FILE'
  /** A comment that has been made against the line of a pull request */
  | 'LINE';

/** Represents the latest point in the pull request timeline for which the viewer has seen the pull request's commits. */
export type PullRequestRevisionMarker = {
  __typename?: 'PullRequestRevisionMarker';
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** The last commit the viewer has seen. */
  lastSeenCommit: Commit;
  /** The pull request to which the marker belongs. */
  pullRequest: PullRequest;
};

/** The possible states of a pull request. */
export type PullRequestState =
  /** A pull request that has been closed without being merged. */
  | 'CLOSED'
  /** A pull request that has been closed by being merged. */
  | 'MERGED'
  /** A pull request that is still open. */
  | 'OPEN';

/** A repository pull request template. */
export type PullRequestTemplate = {
  __typename?: 'PullRequestTemplate';
  /** The body of the template */
  body?: Maybe<Scalars['String']>;
  /** The filename of the template */
  filename?: Maybe<Scalars['String']>;
  /** The repository the template belongs to */
  repository: Repository;
};

/** A threaded list of comments for a given pull request. */
export type PullRequestThread = Node & {
  __typename?: 'PullRequestThread';
  /** A list of pull request comments associated with the thread. */
  comments: PullRequestReviewCommentConnection;
  /** The side of the diff on which this thread was placed. */
  diffSide: DiffSide;
  id: Scalars['ID'];
  /** Whether or not the thread has been collapsed (resolved) */
  isCollapsed: Scalars['Boolean'];
  /** Indicates whether this thread was outdated by newer changes. */
  isOutdated: Scalars['Boolean'];
  /** Whether this thread has been resolved */
  isResolved: Scalars['Boolean'];
  /** The line in the file to which this thread refers */
  line?: Maybe<Scalars['Int']>;
  /** Identifies the pull request associated with this thread. */
  pullRequest: PullRequest;
  /** Identifies the repository associated with this thread. */
  repository: Repository;
  /** The user who resolved this thread */
  resolvedBy?: Maybe<User>;
  /** The side of the diff that the first line of the thread starts on (multi-line only) */
  startDiffSide?: Maybe<DiffSide>;
  /** The line of the first file diff in the thread. */
  startLine?: Maybe<Scalars['Int']>;
  /** Indicates whether the current viewer can reply to this thread. */
  viewerCanReply: Scalars['Boolean'];
  /** Whether or not the viewer can resolve this thread */
  viewerCanResolve: Scalars['Boolean'];
  /** Whether or not the viewer can unresolve this thread */
  viewerCanUnresolve: Scalars['Boolean'];
};


/** A threaded list of comments for a given pull request. */
export type PullRequestThreadCommentsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  skip?: InputMaybe<Scalars['Int']>;
};

/** The connection type for PullRequestTimelineItem. */
export type PullRequestTimelineConnection = {
  __typename?: 'PullRequestTimelineConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<PullRequestTimelineItemEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<PullRequestTimelineItem>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An item in a pull request timeline */
export type PullRequestTimelineItem = AssignedEvent | BaseRefDeletedEvent | BaseRefForcePushedEvent | ClosedEvent | Commit | CommitCommentThread | CrossReferencedEvent | DemilestonedEvent | DeployedEvent | DeploymentEnvironmentChangedEvent | HeadRefDeletedEvent | HeadRefForcePushedEvent | HeadRefRestoredEvent | IssueComment | LabeledEvent | LockedEvent | MergedEvent | MilestonedEvent | PullRequestReview | PullRequestReviewComment | PullRequestReviewThread | ReferencedEvent | RenamedTitleEvent | ReopenedEvent | ReviewDismissedEvent | ReviewRequestRemovedEvent | ReviewRequestedEvent | SubscribedEvent | UnassignedEvent | UnlabeledEvent | UnlockedEvent | UnsubscribedEvent | UserBlockedEvent;

/** An edge in a connection. */
export type PullRequestTimelineItemEdge = {
  __typename?: 'PullRequestTimelineItemEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<PullRequestTimelineItem>;
};

/** An item in a pull request timeline */
export type PullRequestTimelineItems = AddedToProjectEvent | AssignedEvent | AutoMergeDisabledEvent | AutoMergeEnabledEvent | AutoRebaseEnabledEvent | AutoSquashEnabledEvent | AutomaticBaseChangeFailedEvent | AutomaticBaseChangeSucceededEvent | BaseRefChangedEvent | BaseRefDeletedEvent | BaseRefForcePushedEvent | ClosedEvent | CommentDeletedEvent | ConnectedEvent | ConvertToDraftEvent | ConvertedNoteToIssueEvent | ConvertedToDiscussionEvent | CrossReferencedEvent | DemilestonedEvent | DeployedEvent | DeploymentEnvironmentChangedEvent | DisconnectedEvent | HeadRefDeletedEvent | HeadRefForcePushedEvent | HeadRefRestoredEvent | IssueComment | LabeledEvent | LockedEvent | MarkedAsDuplicateEvent | MentionedEvent | MergedEvent | MilestonedEvent | MovedColumnsInProjectEvent | PinnedEvent | PullRequestCommit | PullRequestCommitCommentThread | PullRequestReview | PullRequestReviewThread | PullRequestRevisionMarker | ReadyForReviewEvent | ReferencedEvent | RemovedFromProjectEvent | RenamedTitleEvent | ReopenedEvent | ReviewDismissedEvent | ReviewRequestRemovedEvent | ReviewRequestedEvent | SubscribedEvent | TransferredEvent | UnassignedEvent | UnlabeledEvent | UnlockedEvent | UnmarkedAsDuplicateEvent | UnpinnedEvent | UnsubscribedEvent | UserBlockedEvent;

/** The connection type for PullRequestTimelineItems. */
export type PullRequestTimelineItemsConnection = {
  __typename?: 'PullRequestTimelineItemsConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<PullRequestTimelineItemsEdge>>>;
  /** Identifies the count of items after applying `before` and `after` filters. */
  filteredCount: Scalars['Int'];
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<PullRequestTimelineItems>>>;
  /** Identifies the count of items after applying `before`/`after` filters and `first`/`last`/`skip` slicing. */
  pageCount: Scalars['Int'];
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
  /** Identifies the date and time when the timeline was last updated. */
  updatedAt: Scalars['DateTime'];
};

/** An edge in a connection. */
export type PullRequestTimelineItemsEdge = {
  __typename?: 'PullRequestTimelineItemsEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<PullRequestTimelineItems>;
};

/** The possible item types found in a timeline. */
export type PullRequestTimelineItemsItemType =
  /** Represents an 'added_to_merge_queue' event on a given pull request. */
  | 'ADDED_TO_MERGE_QUEUE_EVENT'
  /** Represents a 'added_to_project' event on a given issue or pull request. */
  | 'ADDED_TO_PROJECT_EVENT'
  /** Represents an 'assigned' event on any assignable object. */
  | 'ASSIGNED_EVENT'
  /** Represents a 'automatic_base_change_failed' event on a given pull request. */
  | 'AUTOMATIC_BASE_CHANGE_FAILED_EVENT'
  /** Represents a 'automatic_base_change_succeeded' event on a given pull request. */
  | 'AUTOMATIC_BASE_CHANGE_SUCCEEDED_EVENT'
  /** Represents a 'auto_merge_disabled' event on a given pull request. */
  | 'AUTO_MERGE_DISABLED_EVENT'
  /** Represents a 'auto_merge_enabled' event on a given pull request. */
  | 'AUTO_MERGE_ENABLED_EVENT'
  /** Represents a 'auto_rebase_enabled' event on a given pull request. */
  | 'AUTO_REBASE_ENABLED_EVENT'
  /** Represents a 'auto_squash_enabled' event on a given pull request. */
  | 'AUTO_SQUASH_ENABLED_EVENT'
  /** Represents a 'base_ref_changed' event on a given issue or pull request. */
  | 'BASE_REF_CHANGED_EVENT'
  /** Represents a 'base_ref_deleted' event on a given pull request. */
  | 'BASE_REF_DELETED_EVENT'
  /** Represents a 'base_ref_force_pushed' event on a given pull request. */
  | 'BASE_REF_FORCE_PUSHED_EVENT'
  /** Represents a 'closed' event on any `Closable`. */
  | 'CLOSED_EVENT'
  /** Represents a 'comment_deleted' event on a given issue or pull request. */
  | 'COMMENT_DELETED_EVENT'
  /** Represents a 'connected' event on a given issue or pull request. */
  | 'CONNECTED_EVENT'
  /** Represents a 'converted_note_to_issue' event on a given issue or pull request. */
  | 'CONVERTED_NOTE_TO_ISSUE_EVENT'
  /** Represents a 'converted_to_discussion' event on a given issue. */
  | 'CONVERTED_TO_DISCUSSION_EVENT'
  /** Represents a 'convert_to_draft' event on a given pull request. */
  | 'CONVERT_TO_DRAFT_EVENT'
  /** Represents a mention made by one issue or pull request to another. */
  | 'CROSS_REFERENCED_EVENT'
  /** Represents a 'demilestoned' event on a given issue or pull request. */
  | 'DEMILESTONED_EVENT'
  /** Represents a 'deployed' event on a given pull request. */
  | 'DEPLOYED_EVENT'
  /** Represents a 'deployment_environment_changed' event on a given pull request. */
  | 'DEPLOYMENT_ENVIRONMENT_CHANGED_EVENT'
  /** Represents a 'disconnected' event on a given issue or pull request. */
  | 'DISCONNECTED_EVENT'
  /** Represents a 'head_ref_deleted' event on a given pull request. */
  | 'HEAD_REF_DELETED_EVENT'
  /** Represents a 'head_ref_force_pushed' event on a given pull request. */
  | 'HEAD_REF_FORCE_PUSHED_EVENT'
  /** Represents a 'head_ref_restored' event on a given pull request. */
  | 'HEAD_REF_RESTORED_EVENT'
  /** Represents a comment on an Issue. */
  | 'ISSUE_COMMENT'
  /** Represents a 'labeled' event on a given issue or pull request. */
  | 'LABELED_EVENT'
  /** Represents a 'locked' event on a given issue or pull request. */
  | 'LOCKED_EVENT'
  /** Represents a 'marked_as_duplicate' event on a given issue or pull request. */
  | 'MARKED_AS_DUPLICATE_EVENT'
  /** Represents a 'mentioned' event on a given issue or pull request. */
  | 'MENTIONED_EVENT'
  /** Represents a 'merged' event on a given pull request. */
  | 'MERGED_EVENT'
  /** Represents a 'milestoned' event on a given issue or pull request. */
  | 'MILESTONED_EVENT'
  /** Represents a 'moved_columns_in_project' event on a given issue or pull request. */
  | 'MOVED_COLUMNS_IN_PROJECT_EVENT'
  /** Represents a 'pinned' event on a given issue or pull request. */
  | 'PINNED_EVENT'
  /** Represents a Git commit part of a pull request. */
  | 'PULL_REQUEST_COMMIT'
  /** Represents a commit comment thread part of a pull request. */
  | 'PULL_REQUEST_COMMIT_COMMENT_THREAD'
  /** A review object for a given pull request. */
  | 'PULL_REQUEST_REVIEW'
  /** A threaded list of comments for a given pull request. */
  | 'PULL_REQUEST_REVIEW_THREAD'
  /** Represents the latest point in the pull request timeline for which the viewer has seen the pull request's commits. */
  | 'PULL_REQUEST_REVISION_MARKER'
  /** Represents a 'ready_for_review' event on a given pull request. */
  | 'READY_FOR_REVIEW_EVENT'
  /** Represents a 'referenced' event on a given `ReferencedSubject`. */
  | 'REFERENCED_EVENT'
  /** Represents a 'removed_from_merge_queue' event on a given pull request. */
  | 'REMOVED_FROM_MERGE_QUEUE_EVENT'
  /** Represents a 'removed_from_project' event on a given issue or pull request. */
  | 'REMOVED_FROM_PROJECT_EVENT'
  /** Represents a 'renamed' event on a given issue or pull request */
  | 'RENAMED_TITLE_EVENT'
  /** Represents a 'reopened' event on any `Closable`. */
  | 'REOPENED_EVENT'
  /** Represents a 'review_dismissed' event on a given issue or pull request. */
  | 'REVIEW_DISMISSED_EVENT'
  /** Represents an 'review_requested' event on a given pull request. */
  | 'REVIEW_REQUESTED_EVENT'
  /** Represents an 'review_request_removed' event on a given pull request. */
  | 'REVIEW_REQUEST_REMOVED_EVENT'
  /** Represents a 'subscribed' event on a given `Subscribable`. */
  | 'SUBSCRIBED_EVENT'
  /** Represents a 'transferred' event on a given issue or pull request. */
  | 'TRANSFERRED_EVENT'
  /** Represents an 'unassigned' event on any assignable object. */
  | 'UNASSIGNED_EVENT'
  /** Represents an 'unlabeled' event on a given issue or pull request. */
  | 'UNLABELED_EVENT'
  /** Represents an 'unlocked' event on a given issue or pull request. */
  | 'UNLOCKED_EVENT'
  /** Represents an 'unmarked_as_duplicate' event on a given issue or pull request. */
  | 'UNMARKED_AS_DUPLICATE_EVENT'
  /** Represents an 'unpinned' event on a given issue or pull request. */
  | 'UNPINNED_EVENT'
  /** Represents an 'unsubscribed' event on a given `Subscribable`. */
  | 'UNSUBSCRIBED_EVENT'
  /** Represents a 'user_blocked' event on a given user. */
  | 'USER_BLOCKED_EVENT';

/** The possible target states when updating a pull request. */
export type PullRequestUpdateState =
  /** A pull request that has been closed without being merged. */
  | 'CLOSED'
  /** A pull request that is still open. */
  | 'OPEN';

/** A Git push. */
export type Push = Node & {
  __typename?: 'Push';
  id: Scalars['ID'];
  /** The SHA after the push */
  nextSha?: Maybe<Scalars['GitObjectID']>;
  /** The permalink for this push. */
  permalink: Scalars['URI'];
  /** The SHA before the push */
  previousSha?: Maybe<Scalars['GitObjectID']>;
  /** The actor who pushed */
  pusher: Bot | EnterpriseUserAccount | Mannequin | Organization | User;
  /** The repository that was pushed to */
  repository: Repository;
};

/** A team, user, or app who has the ability to push to a protected branch. */
export type PushAllowance = Node & {
  __typename?: 'PushAllowance';
  /** The actor that can push. */
  actor?: Maybe<PushAllowanceActor>;
  /** Identifies the branch protection rule associated with the allowed user, team, or app. */
  branchProtectionRule?: Maybe<BranchProtectionRule>;
  id: Scalars['ID'];
};

/** Types that can be an actor. */
export type PushAllowanceActor = App | Team | User;

/** The connection type for PushAllowance. */
export type PushAllowanceConnection = {
  __typename?: 'PushAllowanceConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<PushAllowanceEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<PushAllowance>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type PushAllowanceEdge = {
  __typename?: 'PushAllowanceEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<PushAllowance>;
};

/** The query root of GitHub's GraphQL interface. */
export type Query = {
  __typename?: 'Query';
  /** Look up a code of conduct by its key */
  codeOfConduct?: Maybe<CodeOfConduct>;
  /** Look up a code of conduct by its key */
  codesOfConduct?: Maybe<Array<Maybe<CodeOfConduct>>>;
  /** Look up an enterprise by URL slug. */
  enterprise?: Maybe<Enterprise>;
  /** Look up a pending enterprise administrator invitation by invitee, enterprise and role. */
  enterpriseAdministratorInvitation?: Maybe<EnterpriseAdministratorInvitation>;
  /** Look up a pending enterprise administrator invitation by invitation token. */
  enterpriseAdministratorInvitationByToken?: Maybe<EnterpriseAdministratorInvitation>;
  /** Look up an open source license by its key */
  license?: Maybe<License>;
  /** Return a list of known open source licenses */
  licenses: Array<Maybe<License>>;
  /** Get alphabetically sorted list of Marketplace categories */
  marketplaceCategories: Array<MarketplaceCategory>;
  /** Look up a Marketplace category by its slug. */
  marketplaceCategory?: Maybe<MarketplaceCategory>;
  /** Look up a single Marketplace listing */
  marketplaceListing?: Maybe<MarketplaceListing>;
  /** Look up Marketplace listings */
  marketplaceListings: MarketplaceListingConnection;
  /** Return information about the GitHub instance */
  meta: GitHubMetadata;
  /** Fetches an object given its ID. */
  node?: Maybe<AddedToProjectEvent | App | AssignedEvent | AutoMergeDisabledEvent | AutoMergeEnabledEvent | AutoRebaseEnabledEvent | AutoSquashEnabledEvent | AutomaticBaseChangeFailedEvent | AutomaticBaseChangeSucceededEvent | BaseRefChangedEvent | BaseRefDeletedEvent | BaseRefForcePushedEvent | Blob | Bot | BranchProtectionRule | BypassForcePushAllowance | BypassPullRequestAllowance | Cwe | CheckRun | CheckSuite | ClosedEvent | CodeOfConduct | CommentDeletedEvent | Commit | CommitComment | CommitCommentThread | Comparison | ConnectedEvent | ConvertToDraftEvent | ConvertedNoteToIssueEvent | ConvertedToDiscussionEvent | CrossReferencedEvent | DemilestonedEvent | DeployKey | DeployedEvent | Deployment | DeploymentEnvironmentChangedEvent | DeploymentReview | DeploymentStatus | DisconnectedEvent | Discussion | DiscussionCategory | DiscussionComment | DiscussionPoll | DiscussionPollOption | DraftIssue | Enterprise | EnterpriseAdministratorInvitation | EnterpriseIdentityProvider | EnterpriseRepositoryInfo | EnterpriseServerInstallation | EnterpriseServerUserAccount | EnterpriseServerUserAccountEmail | EnterpriseServerUserAccountsUpload | EnterpriseUserAccount | Environment | ExternalIdentity | Gist | GistComment | HeadRefDeletedEvent | HeadRefForcePushedEvent | HeadRefRestoredEvent | IpAllowListEntry | Issue | IssueComment | Label | LabeledEvent | Language | License | LinkedBranch | LockedEvent | Mannequin | MarkedAsDuplicateEvent | MarketplaceCategory | MarketplaceListing | MembersCanDeleteReposClearAuditEntry | MembersCanDeleteReposDisableAuditEntry | MembersCanDeleteReposEnableAuditEntry | MentionedEvent | MergedEvent | MigrationSource | Milestone | MilestonedEvent | MovedColumnsInProjectEvent | OidcProvider | OauthApplicationCreateAuditEntry | OrgAddBillingManagerAuditEntry | OrgAddMemberAuditEntry | OrgBlockUserAuditEntry | OrgConfigDisableCollaboratorsOnlyAuditEntry | OrgConfigEnableCollaboratorsOnlyAuditEntry | OrgCreateAuditEntry | OrgDisableOauthAppRestrictionsAuditEntry | OrgDisableSamlAuditEntry | OrgDisableTwoFactorRequirementAuditEntry | OrgEnableOauthAppRestrictionsAuditEntry | OrgEnableSamlAuditEntry | OrgEnableTwoFactorRequirementAuditEntry | OrgInviteMemberAuditEntry | OrgInviteToBusinessAuditEntry | OrgOauthAppAccessApprovedAuditEntry | OrgOauthAppAccessDeniedAuditEntry | OrgOauthAppAccessRequestedAuditEntry | OrgRemoveBillingManagerAuditEntry | OrgRemoveMemberAuditEntry | OrgRemoveOutsideCollaboratorAuditEntry | OrgRestoreMemberAuditEntry | OrgUnblockUserAuditEntry | OrgUpdateDefaultRepositoryPermissionAuditEntry | OrgUpdateMemberAuditEntry | OrgUpdateMemberRepositoryCreationPermissionAuditEntry | OrgUpdateMemberRepositoryInvitationPermissionAuditEntry | Organization | OrganizationIdentityProvider | OrganizationInvitation | OrganizationMigration | Package | PackageFile | PackageTag | PackageVersion | PinnedDiscussion | PinnedEvent | PinnedIssue | PrivateRepositoryForkingDisableAuditEntry | PrivateRepositoryForkingEnableAuditEntry | Project | ProjectCard | ProjectColumn | ProjectV2 | ProjectV2Field | ProjectV2Item | ProjectV2ItemFieldDateValue | ProjectV2ItemFieldIterationValue | ProjectV2ItemFieldNumberValue | ProjectV2ItemFieldSingleSelectValue | ProjectV2ItemFieldTextValue | ProjectV2IterationField | ProjectV2SingleSelectField | ProjectV2View | ProjectV2Workflow | PublicKey | PullRequest | PullRequestCommit | PullRequestCommitCommentThread | PullRequestReview | PullRequestReviewComment | PullRequestReviewThread | PullRequestThread | Push | PushAllowance | Reaction | ReadyForReviewEvent | Ref | ReferencedEvent | Release | ReleaseAsset | RemovedFromProjectEvent | RenamedTitleEvent | ReopenedEvent | RepoAccessAuditEntry | RepoAddMemberAuditEntry | RepoAddTopicAuditEntry | RepoArchivedAuditEntry | RepoChangeMergeSettingAuditEntry | RepoConfigDisableAnonymousGitAccessAuditEntry | RepoConfigDisableCollaboratorsOnlyAuditEntry | RepoConfigDisableContributorsOnlyAuditEntry | RepoConfigDisableSockpuppetDisallowedAuditEntry | RepoConfigEnableAnonymousGitAccessAuditEntry | RepoConfigEnableCollaboratorsOnlyAuditEntry | RepoConfigEnableContributorsOnlyAuditEntry | RepoConfigEnableSockpuppetDisallowedAuditEntry | RepoConfigLockAnonymousGitAccessAuditEntry | RepoConfigUnlockAnonymousGitAccessAuditEntry | RepoCreateAuditEntry | RepoDestroyAuditEntry | RepoRemoveMemberAuditEntry | RepoRemoveTopicAuditEntry | Repository | RepositoryInvitation | RepositoryMigration | RepositoryTopic | RepositoryVisibilityChangeDisableAuditEntry | RepositoryVisibilityChangeEnableAuditEntry | RepositoryVulnerabilityAlert | ReviewDismissalAllowance | ReviewDismissedEvent | ReviewRequest | ReviewRequestRemovedEvent | ReviewRequestedEvent | SavedReply | SecurityAdvisory | SponsorsActivity | SponsorsListing | SponsorsListingFeaturedItem | SponsorsTier | Sponsorship | SponsorshipNewsletter | Status | StatusCheckRollup | StatusContext | SubscribedEvent | Tag | Team | TeamAddMemberAuditEntry | TeamAddRepositoryAuditEntry | TeamChangeParentTeamAuditEntry | TeamDiscussion | TeamDiscussionComment | TeamRemoveMemberAuditEntry | TeamRemoveRepositoryAuditEntry | Topic | TransferredEvent | Tree | UnassignedEvent | UnlabeledEvent | UnlockedEvent | UnmarkedAsDuplicateEvent | UnpinnedEvent | UnsubscribedEvent | User | UserBlockedEvent | UserContentEdit | UserStatus | VerifiableDomain | Workflow | WorkflowRun>;
  /** Lookup nodes by a list of IDs. */
  nodes: Array<Maybe<AddedToProjectEvent | App | AssignedEvent | AutoMergeDisabledEvent | AutoMergeEnabledEvent | AutoRebaseEnabledEvent | AutoSquashEnabledEvent | AutomaticBaseChangeFailedEvent | AutomaticBaseChangeSucceededEvent | BaseRefChangedEvent | BaseRefDeletedEvent | BaseRefForcePushedEvent | Blob | Bot | BranchProtectionRule | BypassForcePushAllowance | BypassPullRequestAllowance | Cwe | CheckRun | CheckSuite | ClosedEvent | CodeOfConduct | CommentDeletedEvent | Commit | CommitComment | CommitCommentThread | Comparison | ConnectedEvent | ConvertToDraftEvent | ConvertedNoteToIssueEvent | ConvertedToDiscussionEvent | CrossReferencedEvent | DemilestonedEvent | DeployKey | DeployedEvent | Deployment | DeploymentEnvironmentChangedEvent | DeploymentReview | DeploymentStatus | DisconnectedEvent | Discussion | DiscussionCategory | DiscussionComment | DiscussionPoll | DiscussionPollOption | DraftIssue | Enterprise | EnterpriseAdministratorInvitation | EnterpriseIdentityProvider | EnterpriseRepositoryInfo | EnterpriseServerInstallation | EnterpriseServerUserAccount | EnterpriseServerUserAccountEmail | EnterpriseServerUserAccountsUpload | EnterpriseUserAccount | Environment | ExternalIdentity | Gist | GistComment | HeadRefDeletedEvent | HeadRefForcePushedEvent | HeadRefRestoredEvent | IpAllowListEntry | Issue | IssueComment | Label | LabeledEvent | Language | License | LinkedBranch | LockedEvent | Mannequin | MarkedAsDuplicateEvent | MarketplaceCategory | MarketplaceListing | MembersCanDeleteReposClearAuditEntry | MembersCanDeleteReposDisableAuditEntry | MembersCanDeleteReposEnableAuditEntry | MentionedEvent | MergedEvent | MigrationSource | Milestone | MilestonedEvent | MovedColumnsInProjectEvent | OidcProvider | OauthApplicationCreateAuditEntry | OrgAddBillingManagerAuditEntry | OrgAddMemberAuditEntry | OrgBlockUserAuditEntry | OrgConfigDisableCollaboratorsOnlyAuditEntry | OrgConfigEnableCollaboratorsOnlyAuditEntry | OrgCreateAuditEntry | OrgDisableOauthAppRestrictionsAuditEntry | OrgDisableSamlAuditEntry | OrgDisableTwoFactorRequirementAuditEntry | OrgEnableOauthAppRestrictionsAuditEntry | OrgEnableSamlAuditEntry | OrgEnableTwoFactorRequirementAuditEntry | OrgInviteMemberAuditEntry | OrgInviteToBusinessAuditEntry | OrgOauthAppAccessApprovedAuditEntry | OrgOauthAppAccessDeniedAuditEntry | OrgOauthAppAccessRequestedAuditEntry | OrgRemoveBillingManagerAuditEntry | OrgRemoveMemberAuditEntry | OrgRemoveOutsideCollaboratorAuditEntry | OrgRestoreMemberAuditEntry | OrgUnblockUserAuditEntry | OrgUpdateDefaultRepositoryPermissionAuditEntry | OrgUpdateMemberAuditEntry | OrgUpdateMemberRepositoryCreationPermissionAuditEntry | OrgUpdateMemberRepositoryInvitationPermissionAuditEntry | Organization | OrganizationIdentityProvider | OrganizationInvitation | OrganizationMigration | Package | PackageFile | PackageTag | PackageVersion | PinnedDiscussion | PinnedEvent | PinnedIssue | PrivateRepositoryForkingDisableAuditEntry | PrivateRepositoryForkingEnableAuditEntry | Project | ProjectCard | ProjectColumn | ProjectV2 | ProjectV2Field | ProjectV2Item | ProjectV2ItemFieldDateValue | ProjectV2ItemFieldIterationValue | ProjectV2ItemFieldNumberValue | ProjectV2ItemFieldSingleSelectValue | ProjectV2ItemFieldTextValue | ProjectV2IterationField | ProjectV2SingleSelectField | ProjectV2View | ProjectV2Workflow | PublicKey | PullRequest | PullRequestCommit | PullRequestCommitCommentThread | PullRequestReview | PullRequestReviewComment | PullRequestReviewThread | PullRequestThread | Push | PushAllowance | Reaction | ReadyForReviewEvent | Ref | ReferencedEvent | Release | ReleaseAsset | RemovedFromProjectEvent | RenamedTitleEvent | ReopenedEvent | RepoAccessAuditEntry | RepoAddMemberAuditEntry | RepoAddTopicAuditEntry | RepoArchivedAuditEntry | RepoChangeMergeSettingAuditEntry | RepoConfigDisableAnonymousGitAccessAuditEntry | RepoConfigDisableCollaboratorsOnlyAuditEntry | RepoConfigDisableContributorsOnlyAuditEntry | RepoConfigDisableSockpuppetDisallowedAuditEntry | RepoConfigEnableAnonymousGitAccessAuditEntry | RepoConfigEnableCollaboratorsOnlyAuditEntry | RepoConfigEnableContributorsOnlyAuditEntry | RepoConfigEnableSockpuppetDisallowedAuditEntry | RepoConfigLockAnonymousGitAccessAuditEntry | RepoConfigUnlockAnonymousGitAccessAuditEntry | RepoCreateAuditEntry | RepoDestroyAuditEntry | RepoRemoveMemberAuditEntry | RepoRemoveTopicAuditEntry | Repository | RepositoryInvitation | RepositoryMigration | RepositoryTopic | RepositoryVisibilityChangeDisableAuditEntry | RepositoryVisibilityChangeEnableAuditEntry | RepositoryVulnerabilityAlert | ReviewDismissalAllowance | ReviewDismissedEvent | ReviewRequest | ReviewRequestRemovedEvent | ReviewRequestedEvent | SavedReply | SecurityAdvisory | SponsorsActivity | SponsorsListing | SponsorsListingFeaturedItem | SponsorsTier | Sponsorship | SponsorshipNewsletter | Status | StatusCheckRollup | StatusContext | SubscribedEvent | Tag | Team | TeamAddMemberAuditEntry | TeamAddRepositoryAuditEntry | TeamChangeParentTeamAuditEntry | TeamDiscussion | TeamDiscussionComment | TeamRemoveMemberAuditEntry | TeamRemoveRepositoryAuditEntry | Topic | TransferredEvent | Tree | UnassignedEvent | UnlabeledEvent | UnlockedEvent | UnmarkedAsDuplicateEvent | UnpinnedEvent | UnsubscribedEvent | User | UserBlockedEvent | UserContentEdit | UserStatus | VerifiableDomain | Workflow | WorkflowRun>>;
  /** Lookup a organization by login. */
  organization?: Maybe<Organization>;
  /** The client's rate limit information. */
  rateLimit?: Maybe<RateLimit>;
  /** Hack to workaround https://github.com/facebook/relay/issues/112 re-exposing the root query object */
  relay: Query;
  /** Lookup a given repository by the owner and repository name. */
  repository?: Maybe<Repository>;
  /** Lookup a repository owner (ie. either a User or an Organization) by login. */
  repositoryOwner?: Maybe<Organization | User>;
  /** Lookup resource by a URL. */
  resource?: Maybe<Bot | CheckRun | ClosedEvent | Commit | ConvertToDraftEvent | CrossReferencedEvent | Gist | Issue | Mannequin | MergedEvent | Milestone | Organization | PullRequest | PullRequestCommit | ReadyForReviewEvent | Release | Repository | RepositoryTopic | ReviewDismissedEvent | TeamDiscussion | TeamDiscussionComment | User | WorkflowRun>;
  /** Perform a search across resources, returning a maximum of 1,000 results. */
  search: SearchResultItemConnection;
  /** GitHub Security Advisories */
  securityAdvisories: SecurityAdvisoryConnection;
  /** Fetch a Security Advisory by its GHSA ID */
  securityAdvisory?: Maybe<SecurityAdvisory>;
  /** Software Vulnerabilities documented by GitHub Security Advisories */
  securityVulnerabilities: SecurityVulnerabilityConnection;
  /** Users and organizations who can be sponsored via GitHub Sponsors. */
  sponsorables: SponsorableItemConnection;
  /** Look up a topic by name. */
  topic?: Maybe<Topic>;
  /** Lookup a user by login. */
  user?: Maybe<User>;
  /** The currently authenticated user. */
  viewer: User;
};


/** The query root of GitHub's GraphQL interface. */
export type QueryCodeOfConductArgs = {
  key: Scalars['String'];
};


/** The query root of GitHub's GraphQL interface. */
export type QueryEnterpriseArgs = {
  invitationToken?: InputMaybe<Scalars['String']>;
  slug: Scalars['String'];
};


/** The query root of GitHub's GraphQL interface. */
export type QueryEnterpriseAdministratorInvitationArgs = {
  enterpriseSlug: Scalars['String'];
  role: EnterpriseAdministratorRole;
  userLogin: Scalars['String'];
};


/** The query root of GitHub's GraphQL interface. */
export type QueryEnterpriseAdministratorInvitationByTokenArgs = {
  invitationToken: Scalars['String'];
};


/** The query root of GitHub's GraphQL interface. */
export type QueryLicenseArgs = {
  key: Scalars['String'];
};


/** The query root of GitHub's GraphQL interface. */
export type QueryMarketplaceCategoriesArgs = {
  excludeEmpty?: InputMaybe<Scalars['Boolean']>;
  excludeSubcategories?: InputMaybe<Scalars['Boolean']>;
  includeCategories?: InputMaybe<Array<Scalars['String']>>;
};


/** The query root of GitHub's GraphQL interface. */
export type QueryMarketplaceCategoryArgs = {
  slug: Scalars['String'];
  useTopicAliases?: InputMaybe<Scalars['Boolean']>;
};


/** The query root of GitHub's GraphQL interface. */
export type QueryMarketplaceListingArgs = {
  slug: Scalars['String'];
};


/** The query root of GitHub's GraphQL interface. */
export type QueryMarketplaceListingsArgs = {
  adminId?: InputMaybe<Scalars['ID']>;
  after?: InputMaybe<Scalars['String']>;
  allStates?: InputMaybe<Scalars['Boolean']>;
  before?: InputMaybe<Scalars['String']>;
  categorySlug?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  organizationId?: InputMaybe<Scalars['ID']>;
  primaryCategoryOnly?: InputMaybe<Scalars['Boolean']>;
  slugs?: InputMaybe<Array<InputMaybe<Scalars['String']>>>;
  useTopicAliases?: InputMaybe<Scalars['Boolean']>;
  viewerCanAdmin?: InputMaybe<Scalars['Boolean']>;
  withFreeTrialsOnly?: InputMaybe<Scalars['Boolean']>;
};


/** The query root of GitHub's GraphQL interface. */
export type QueryNodeArgs = {
  id: Scalars['ID'];
};


/** The query root of GitHub's GraphQL interface. */
export type QueryNodesArgs = {
  ids: Array<Scalars['ID']>;
};


/** The query root of GitHub's GraphQL interface. */
export type QueryOrganizationArgs = {
  login: Scalars['String'];
};


/** The query root of GitHub's GraphQL interface. */
export type QueryRateLimitArgs = {
  dryRun?: InputMaybe<Scalars['Boolean']>;
};


/** The query root of GitHub's GraphQL interface. */
export type QueryRepositoryArgs = {
  followRenames?: InputMaybe<Scalars['Boolean']>;
  name: Scalars['String'];
  owner: Scalars['String'];
};


/** The query root of GitHub's GraphQL interface. */
export type QueryRepositoryOwnerArgs = {
  login: Scalars['String'];
};


/** The query root of GitHub's GraphQL interface. */
export type QueryResourceArgs = {
  url: Scalars['URI'];
};


/** The query root of GitHub's GraphQL interface. */
export type QuerySearchArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  query: Scalars['String'];
  type: SearchType;
};


/** The query root of GitHub's GraphQL interface. */
export type QuerySecurityAdvisoriesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  classifications?: InputMaybe<Array<SecurityAdvisoryClassification>>;
  first?: InputMaybe<Scalars['Int']>;
  identifier?: InputMaybe<SecurityAdvisoryIdentifierFilter>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<SecurityAdvisoryOrder>;
  publishedSince?: InputMaybe<Scalars['DateTime']>;
  updatedSince?: InputMaybe<Scalars['DateTime']>;
};


/** The query root of GitHub's GraphQL interface. */
export type QuerySecurityAdvisoryArgs = {
  ghsaId: Scalars['String'];
};


/** The query root of GitHub's GraphQL interface. */
export type QuerySecurityVulnerabilitiesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  classifications?: InputMaybe<Array<SecurityAdvisoryClassification>>;
  ecosystem?: InputMaybe<SecurityAdvisoryEcosystem>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<SecurityVulnerabilityOrder>;
  package?: InputMaybe<Scalars['String']>;
  severities?: InputMaybe<Array<SecurityAdvisorySeverity>>;
};


/** The query root of GitHub's GraphQL interface. */
export type QuerySponsorablesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  dependencyEcosystem?: InputMaybe<SecurityAdvisoryEcosystem>;
  ecosystem?: InputMaybe<DependencyGraphEcosystem>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  onlyDependencies?: InputMaybe<Scalars['Boolean']>;
  orderBy?: InputMaybe<SponsorableOrder>;
  orgLoginForDependencies?: InputMaybe<Scalars['String']>;
};


/** The query root of GitHub's GraphQL interface. */
export type QueryTopicArgs = {
  name: Scalars['String'];
};


/** The query root of GitHub's GraphQL interface. */
export type QueryUserArgs = {
  login: Scalars['String'];
};

/** Represents the client's rate limit. */
export type RateLimit = {
  __typename?: 'RateLimit';
  /** The point cost for the current query counting against the rate limit. */
  cost: Scalars['Int'];
  /** The maximum number of points the client is permitted to consume in a 60 minute window. */
  limit: Scalars['Int'];
  /** The maximum number of nodes this query may return */
  nodeCount: Scalars['Int'];
  /** The number of points remaining in the current rate limit window. */
  remaining: Scalars['Int'];
  /** The time at which the current rate limit window resets in UTC epoch seconds. */
  resetAt: Scalars['DateTime'];
  /** The number of points used in the current rate limit window. */
  used: Scalars['Int'];
};

/** Represents a subject that can be reacted on. */
export type Reactable = {
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  id: Scalars['ID'];
  /** A list of reactions grouped by content left on the subject. */
  reactionGroups?: Maybe<Array<ReactionGroup>>;
  /** A list of Reactions left on the Issue. */
  reactions: ReactionConnection;
  /** Can user react to this subject */
  viewerCanReact: Scalars['Boolean'];
};


/** Represents a subject that can be reacted on. */
export type ReactableReactionsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  content?: InputMaybe<ReactionContent>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ReactionOrder>;
};

/** The connection type for User. */
export type ReactingUserConnection = {
  __typename?: 'ReactingUserConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<ReactingUserEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<User>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** Represents a user that's made a reaction. */
export type ReactingUserEdge = {
  __typename?: 'ReactingUserEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  node: User;
  /** The moment when the user made the reaction. */
  reactedAt: Scalars['DateTime'];
};

/** An emoji reaction to a particular piece of content. */
export type Reaction = Node & {
  __typename?: 'Reaction';
  /** Identifies the emoji reaction. */
  content: ReactionContent;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  id: Scalars['ID'];
  /** The reactable piece of content */
  reactable: CommitComment | Discussion | DiscussionComment | Issue | IssueComment | PullRequest | PullRequestReview | PullRequestReviewComment | Release | TeamDiscussion | TeamDiscussionComment;
  /** Identifies the user who created this reaction. */
  user?: Maybe<User>;
};

/** A list of reactions that have been left on the subject. */
export type ReactionConnection = {
  __typename?: 'ReactionConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<ReactionEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<Reaction>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
  /** Whether or not the authenticated user has left a reaction on the subject. */
  viewerHasReacted: Scalars['Boolean'];
};

/** Emojis that can be attached to Issues, Pull Requests and Comments. */
export type ReactionContent =
  /** Represents the `:confused:` emoji. */
  | 'CONFUSED'
  /** Represents the `:eyes:` emoji. */
  | 'EYES'
  /** Represents the `:heart:` emoji. */
  | 'HEART'
  /** Represents the `:hooray:` emoji. */
  | 'HOORAY'
  /** Represents the `:laugh:` emoji. */
  | 'LAUGH'
  /** Represents the `:rocket:` emoji. */
  | 'ROCKET'
  /** Represents the `:-1:` emoji. */
  | 'THUMBS_DOWN'
  /** Represents the `:+1:` emoji. */
  | 'THUMBS_UP';

/** An edge in a connection. */
export type ReactionEdge = {
  __typename?: 'ReactionEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<Reaction>;
};

/** A group of emoji reactions to a particular piece of content. */
export type ReactionGroup = {
  __typename?: 'ReactionGroup';
  /** Identifies the emoji reaction. */
  content: ReactionContent;
  /** Identifies when the reaction was created. */
  createdAt?: Maybe<Scalars['DateTime']>;
  /** Reactors to the reaction subject with the emotion represented by this reaction group. */
  reactors: ReactorConnection;
  /** The subject that was reacted to. */
  subject: CommitComment | Discussion | DiscussionComment | Issue | IssueComment | PullRequest | PullRequestReview | PullRequestReviewComment | Release | TeamDiscussion | TeamDiscussionComment;
  /**
   * Users who have reacted to the reaction subject with the emotion represented by this reaction group
   * @deprecated Reactors can now be mannequins, bots, and organizations. Use the `reactors` field instead. Removal on 2021-10-01 UTC.
   */
  users: ReactingUserConnection;
  /** Whether or not the authenticated user has left a reaction on the subject. */
  viewerHasReacted: Scalars['Boolean'];
};


/** A group of emoji reactions to a particular piece of content. */
export type ReactionGroupReactorsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A group of emoji reactions to a particular piece of content. */
export type ReactionGroupUsersArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};

/** Ways in which lists of reactions can be ordered upon return. */
export type ReactionOrder = {
  /** The direction in which to order reactions by the specified field. */
  direction: OrderDirection;
  /** The field in which to order reactions by. */
  field: ReactionOrderField;
};

/** A list of fields that reactions can be ordered by. */
export type ReactionOrderField =
  /** Allows ordering a list of reactions by when they were created. */
  | 'CREATED_AT';

/** Types that can be assigned to reactions. */
export type Reactor = Bot | Mannequin | Organization | User;

/** The connection type for Reactor. */
export type ReactorConnection = {
  __typename?: 'ReactorConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<ReactorEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<Reactor>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** Represents an author of a reaction. */
export type ReactorEdge = {
  __typename?: 'ReactorEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The author of the reaction. */
  node: Reactor;
  /** The moment when the user made the reaction. */
  reactedAt: Scalars['DateTime'];
};

/** Represents a 'ready_for_review' event on a given pull request. */
export type ReadyForReviewEvent = Node & UniformResourceLocatable & {
  __typename?: 'ReadyForReviewEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  id: Scalars['ID'];
  /** PullRequest referenced by event. */
  pullRequest: PullRequest;
  /** The HTTP path for this ready for review event. */
  resourcePath: Scalars['URI'];
  /** The HTTP URL for this ready for review event. */
  url: Scalars['URI'];
};

/** Represents a Git reference. */
export type Ref = Node & {
  __typename?: 'Ref';
  /** A list of pull requests with this ref as the head ref. */
  associatedPullRequests: PullRequestConnection;
  /** Branch protection rules for this ref */
  branchProtectionRule?: Maybe<BranchProtectionRule>;
  /** Compares the current ref as a base ref to another head ref, if the comparison can be made. */
  compare?: Maybe<Comparison>;
  id: Scalars['ID'];
  /** The ref name. */
  name: Scalars['String'];
  /** The ref's prefix, such as `refs/heads/` or `refs/tags/`. */
  prefix: Scalars['String'];
  /** Branch protection rules that are viewable by non-admins */
  refUpdateRule?: Maybe<RefUpdateRule>;
  /** The repository the ref belongs to. */
  repository: Repository;
  /** The object the ref points to. Returns null when object does not exist. */
  target?: Maybe<Blob | Commit | Tag | Tree>;
};


/** Represents a Git reference. */
export type RefAssociatedPullRequestsArgs = {
  after?: InputMaybe<Scalars['String']>;
  baseRefName?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  headRefName?: InputMaybe<Scalars['String']>;
  labels?: InputMaybe<Array<Scalars['String']>>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<IssueOrder>;
  states?: InputMaybe<Array<PullRequestState>>;
};


/** Represents a Git reference. */
export type RefCompareArgs = {
  headRef: Scalars['String'];
};

/** The connection type for Ref. */
export type RefConnection = {
  __typename?: 'RefConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<RefEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<Ref>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type RefEdge = {
  __typename?: 'RefEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<Ref>;
};

/** Ways in which lists of git refs can be ordered upon return. */
export type RefOrder = {
  /** The direction in which to order refs by the specified field. */
  direction: OrderDirection;
  /** The field in which to order refs by. */
  field: RefOrderField;
};

/** Properties by which ref connections can be ordered. */
export type RefOrderField =
  /** Order refs by their alphanumeric name */
  | 'ALPHABETICAL'
  /** Order refs by underlying commit date if the ref prefix is refs/tags/ */
  | 'TAG_COMMIT_DATE';

/** A ref update rules for a viewer. */
export type RefUpdateRule = {
  __typename?: 'RefUpdateRule';
  /** Can this branch be deleted. */
  allowsDeletions: Scalars['Boolean'];
  /** Are force pushes allowed on this branch. */
  allowsForcePushes: Scalars['Boolean'];
  /** Can matching branches be created. */
  blocksCreations: Scalars['Boolean'];
  /** Identifies the protection rule pattern. */
  pattern: Scalars['String'];
  /** Number of approving reviews required to update matching branches. */
  requiredApprovingReviewCount?: Maybe<Scalars['Int']>;
  /** List of required status check contexts that must pass for commits to be accepted to matching branches. */
  requiredStatusCheckContexts?: Maybe<Array<Maybe<Scalars['String']>>>;
  /** Are reviews from code owners required to update matching branches. */
  requiresCodeOwnerReviews: Scalars['Boolean'];
  /** Are conversations required to be resolved before merging. */
  requiresConversationResolution: Scalars['Boolean'];
  /** Are merge commits prohibited from being pushed to this branch. */
  requiresLinearHistory: Scalars['Boolean'];
  /** Are commits required to be signed. */
  requiresSignatures: Scalars['Boolean'];
  /** Is the viewer allowed to dismiss reviews. */
  viewerAllowedToDismissReviews: Scalars['Boolean'];
  /** Can the viewer push to the branch */
  viewerCanPush: Scalars['Boolean'];
};

/** Represents a 'referenced' event on a given `ReferencedSubject`. */
export type ReferencedEvent = Node & {
  __typename?: 'ReferencedEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the commit associated with the 'referenced' event. */
  commit?: Maybe<Commit>;
  /** Identifies the repository associated with the 'referenced' event. */
  commitRepository: Repository;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  id: Scalars['ID'];
  /** Reference originated in a different repository. */
  isCrossRepository: Scalars['Boolean'];
  /** Checks if the commit message itself references the subject. Can be false in the case of a commit comment reference. */
  isDirectReference: Scalars['Boolean'];
  /** Object referenced by event. */
  subject: ReferencedSubject;
};

/** Any referencable object */
export type ReferencedSubject = Issue | PullRequest;

/** Autogenerated input type of RegenerateEnterpriseIdentityProviderRecoveryCodes */
export type RegenerateEnterpriseIdentityProviderRecoveryCodesInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the enterprise on which to set an identity provider. */
  enterpriseId: Scalars['ID'];
};

/** Autogenerated return type of RegenerateEnterpriseIdentityProviderRecoveryCodes */
export type RegenerateEnterpriseIdentityProviderRecoveryCodesPayload = {
  __typename?: 'RegenerateEnterpriseIdentityProviderRecoveryCodesPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The identity provider for the enterprise. */
  identityProvider?: Maybe<EnterpriseIdentityProvider>;
};

/** Autogenerated input type of RegenerateVerifiableDomainToken */
export type RegenerateVerifiableDomainTokenInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the verifiable domain to regenerate the verification token of. */
  id: Scalars['ID'];
};

/** Autogenerated return type of RegenerateVerifiableDomainToken */
export type RegenerateVerifiableDomainTokenPayload = {
  __typename?: 'RegenerateVerifiableDomainTokenPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The verification token that was generated. */
  verificationToken?: Maybe<Scalars['String']>;
};

/** Autogenerated input type of RejectDeployments */
export type RejectDeploymentsInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** Optional comment for rejecting deployments */
  comment?: InputMaybe<Scalars['String']>;
  /** The ids of environments to reject deployments */
  environmentIds: Array<Scalars['ID']>;
  /** The node ID of the workflow run containing the pending deployments. */
  workflowRunId: Scalars['ID'];
};

/** Autogenerated return type of RejectDeployments */
export type RejectDeploymentsPayload = {
  __typename?: 'RejectDeploymentsPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The affected deployments. */
  deployments?: Maybe<Array<Deployment>>;
};

/** A release contains the content for a release. */
export type Release = Node & Reactable & UniformResourceLocatable & {
  __typename?: 'Release';
  /** The author of the release */
  author?: Maybe<User>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** The description of the release. */
  description?: Maybe<Scalars['String']>;
  /** The description of this release rendered to HTML. */
  descriptionHTML?: Maybe<Scalars['HTML']>;
  id: Scalars['ID'];
  /** Whether or not the release is a draft */
  isDraft: Scalars['Boolean'];
  /** Whether or not the release is the latest releast */
  isLatest: Scalars['Boolean'];
  /** Whether or not the release is a prerelease */
  isPrerelease: Scalars['Boolean'];
  /** A list of users mentioned in the release description */
  mentions?: Maybe<UserConnection>;
  /** The title of the release. */
  name?: Maybe<Scalars['String']>;
  /** Identifies the date and time when the release was created. */
  publishedAt?: Maybe<Scalars['DateTime']>;
  /** A list of reactions grouped by content left on the subject. */
  reactionGroups?: Maybe<Array<ReactionGroup>>;
  /** A list of Reactions left on the Issue. */
  reactions: ReactionConnection;
  /** List of releases assets which are dependent on this release. */
  releaseAssets: ReleaseAssetConnection;
  /** The repository that the release belongs to. */
  repository: Repository;
  /** The HTTP path for this issue */
  resourcePath: Scalars['URI'];
  /** A description of the release, rendered to HTML without any links in it. */
  shortDescriptionHTML?: Maybe<Scalars['HTML']>;
  /** The Git tag the release points to */
  tag?: Maybe<Ref>;
  /** The tag commit for this release. */
  tagCommit?: Maybe<Commit>;
  /** The name of the release's Git tag */
  tagName: Scalars['String'];
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
  /** The HTTP URL for this issue */
  url: Scalars['URI'];
  /** Can user react to this subject */
  viewerCanReact: Scalars['Boolean'];
};


/** A release contains the content for a release. */
export type ReleaseMentionsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A release contains the content for a release. */
export type ReleaseReactionsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  content?: InputMaybe<ReactionContent>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ReactionOrder>;
};


/** A release contains the content for a release. */
export type ReleaseReleaseAssetsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  name?: InputMaybe<Scalars['String']>;
};


/** A release contains the content for a release. */
export type ReleaseShortDescriptionHtmlArgs = {
  limit?: InputMaybe<Scalars['Int']>;
};

/** A release asset contains the content for a release asset. */
export type ReleaseAsset = Node & {
  __typename?: 'ReleaseAsset';
  /** The asset's content-type */
  contentType: Scalars['String'];
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** The number of times this asset was downloaded */
  downloadCount: Scalars['Int'];
  /** Identifies the URL where you can download the release asset via the browser. */
  downloadUrl: Scalars['URI'];
  id: Scalars['ID'];
  /** Identifies the title of the release asset. */
  name: Scalars['String'];
  /** Release that the asset is associated with */
  release?: Maybe<Release>;
  /** The size (in bytes) of the asset */
  size: Scalars['Int'];
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
  /** The user that performed the upload */
  uploadedBy: User;
  /** Identifies the URL of the release asset. */
  url: Scalars['URI'];
};

/** The connection type for ReleaseAsset. */
export type ReleaseAssetConnection = {
  __typename?: 'ReleaseAssetConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<ReleaseAssetEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<ReleaseAsset>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type ReleaseAssetEdge = {
  __typename?: 'ReleaseAssetEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<ReleaseAsset>;
};

/** The connection type for Release. */
export type ReleaseConnection = {
  __typename?: 'ReleaseConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<ReleaseEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<Release>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type ReleaseEdge = {
  __typename?: 'ReleaseEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<Release>;
};

/** Ways in which lists of releases can be ordered upon return. */
export type ReleaseOrder = {
  /** The direction in which to order releases by the specified field. */
  direction: OrderDirection;
  /** The field in which to order releases by. */
  field: ReleaseOrderField;
};

/** Properties by which release connections can be ordered. */
export type ReleaseOrderField =
  /** Order releases by creation time */
  | 'CREATED_AT'
  /** Order releases alphabetically by name */
  | 'NAME';

/** Autogenerated input type of RemoveAssigneesFromAssignable */
export type RemoveAssigneesFromAssignableInput = {
  /** The id of the assignable object to remove assignees from. */
  assignableId: Scalars['ID'];
  /** The id of users to remove as assignees. */
  assigneeIds: Array<Scalars['ID']>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
};

/** Autogenerated return type of RemoveAssigneesFromAssignable */
export type RemoveAssigneesFromAssignablePayload = {
  __typename?: 'RemoveAssigneesFromAssignablePayload';
  /** The item that was unassigned. */
  assignable?: Maybe<Issue | PullRequest>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
};

/** Autogenerated input type of RemoveEnterpriseAdmin */
export type RemoveEnterpriseAdminInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The Enterprise ID from which to remove the administrator. */
  enterpriseId: Scalars['ID'];
  /** The login of the user to remove as an administrator. */
  login: Scalars['String'];
};

/** Autogenerated return type of RemoveEnterpriseAdmin */
export type RemoveEnterpriseAdminPayload = {
  __typename?: 'RemoveEnterpriseAdminPayload';
  /** The user who was removed as an administrator. */
  admin?: Maybe<User>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The updated enterprise. */
  enterprise?: Maybe<Enterprise>;
  /** A message confirming the result of removing an administrator. */
  message?: Maybe<Scalars['String']>;
  /** The viewer performing the mutation. */
  viewer?: Maybe<User>;
};

/** Autogenerated input type of RemoveEnterpriseIdentityProvider */
export type RemoveEnterpriseIdentityProviderInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the enterprise from which to remove the identity provider. */
  enterpriseId: Scalars['ID'];
};

/** Autogenerated return type of RemoveEnterpriseIdentityProvider */
export type RemoveEnterpriseIdentityProviderPayload = {
  __typename?: 'RemoveEnterpriseIdentityProviderPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The identity provider that was removed from the enterprise. */
  identityProvider?: Maybe<EnterpriseIdentityProvider>;
};

/** Autogenerated input type of RemoveEnterpriseMember */
export type RemoveEnterpriseMemberInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the enterprise from which the user should be removed. */
  enterpriseId: Scalars['ID'];
  /** The ID of the user to remove from the enterprise. */
  userId: Scalars['ID'];
};

/** Autogenerated return type of RemoveEnterpriseMember */
export type RemoveEnterpriseMemberPayload = {
  __typename?: 'RemoveEnterpriseMemberPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The updated enterprise. */
  enterprise?: Maybe<Enterprise>;
  /** The user that was removed from the enterprise. */
  user?: Maybe<User>;
  /** The viewer performing the mutation. */
  viewer?: Maybe<User>;
};

/** Autogenerated input type of RemoveEnterpriseOrganization */
export type RemoveEnterpriseOrganizationInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the enterprise from which the organization should be removed. */
  enterpriseId: Scalars['ID'];
  /** The ID of the organization to remove from the enterprise. */
  organizationId: Scalars['ID'];
};

/** Autogenerated return type of RemoveEnterpriseOrganization */
export type RemoveEnterpriseOrganizationPayload = {
  __typename?: 'RemoveEnterpriseOrganizationPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The updated enterprise. */
  enterprise?: Maybe<Enterprise>;
  /** The organization that was removed from the enterprise. */
  organization?: Maybe<Organization>;
  /** The viewer performing the mutation. */
  viewer?: Maybe<User>;
};

/** Autogenerated input type of RemoveEnterpriseSupportEntitlement */
export type RemoveEnterpriseSupportEntitlementInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the Enterprise which the admin belongs to. */
  enterpriseId: Scalars['ID'];
  /** The login of a member who will lose the support entitlement. */
  login: Scalars['String'];
};

/** Autogenerated return type of RemoveEnterpriseSupportEntitlement */
export type RemoveEnterpriseSupportEntitlementPayload = {
  __typename?: 'RemoveEnterpriseSupportEntitlementPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** A message confirming the result of removing the support entitlement. */
  message?: Maybe<Scalars['String']>;
};

/** Autogenerated input type of RemoveLabelsFromLabelable */
export type RemoveLabelsFromLabelableInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ids of labels to remove. */
  labelIds: Array<Scalars['ID']>;
  /** The id of the Labelable to remove labels from. */
  labelableId: Scalars['ID'];
};

/** Autogenerated return type of RemoveLabelsFromLabelable */
export type RemoveLabelsFromLabelablePayload = {
  __typename?: 'RemoveLabelsFromLabelablePayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The Labelable the labels were removed from. */
  labelable?: Maybe<Discussion | Issue | PullRequest>;
};

/** Autogenerated input type of RemoveOutsideCollaborator */
export type RemoveOutsideCollaboratorInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the organization to remove the outside collaborator from. */
  organizationId: Scalars['ID'];
  /** The ID of the outside collaborator to remove. */
  userId: Scalars['ID'];
};

/** Autogenerated return type of RemoveOutsideCollaborator */
export type RemoveOutsideCollaboratorPayload = {
  __typename?: 'RemoveOutsideCollaboratorPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The user that was removed as an outside collaborator. */
  removedUser?: Maybe<User>;
};

/** Autogenerated input type of RemoveReaction */
export type RemoveReactionInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The name of the emoji reaction to remove. */
  content: ReactionContent;
  /** The Node ID of the subject to modify. */
  subjectId: Scalars['ID'];
};

/** Autogenerated return type of RemoveReaction */
export type RemoveReactionPayload = {
  __typename?: 'RemoveReactionPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The reaction object. */
  reaction?: Maybe<Reaction>;
  /** The reaction groups for the subject. */
  reactionGroups?: Maybe<Array<ReactionGroup>>;
  /** The reactable subject. */
  subject?: Maybe<CommitComment | Discussion | DiscussionComment | Issue | IssueComment | PullRequest | PullRequestReview | PullRequestReviewComment | Release | TeamDiscussion | TeamDiscussionComment>;
};

/** Autogenerated input type of RemoveStar */
export type RemoveStarInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The Starrable ID to unstar. */
  starrableId: Scalars['ID'];
};

/** Autogenerated return type of RemoveStar */
export type RemoveStarPayload = {
  __typename?: 'RemoveStarPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The starrable. */
  starrable?: Maybe<Gist | Repository | Topic>;
};

/** Autogenerated input type of RemoveUpvote */
export type RemoveUpvoteInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The Node ID of the discussion or comment to remove upvote. */
  subjectId: Scalars['ID'];
};

/** Autogenerated return type of RemoveUpvote */
export type RemoveUpvotePayload = {
  __typename?: 'RemoveUpvotePayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The votable subject. */
  subject?: Maybe<Discussion | DiscussionComment>;
};

/** Represents a 'removed_from_project' event on a given issue or pull request. */
export type RemovedFromProjectEvent = Node & {
  __typename?: 'RemovedFromProjectEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  id: Scalars['ID'];
};

/** Represents a 'renamed' event on a given issue or pull request */
export type RenamedTitleEvent = Node & {
  __typename?: 'RenamedTitleEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Identifies the current title of the issue or pull request. */
  currentTitle: Scalars['String'];
  id: Scalars['ID'];
  /** Identifies the previous title of the issue or pull request. */
  previousTitle: Scalars['String'];
  /** Subject that was renamed. */
  subject: RenamedTitleSubject;
};

/** An object which has a renamable title */
export type RenamedTitleSubject = Issue | PullRequest;

/** Autogenerated input type of ReopenDiscussion */
export type ReopenDiscussionInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** ID of the discussion to be reopened. */
  discussionId: Scalars['ID'];
};

/** Autogenerated return type of ReopenDiscussion */
export type ReopenDiscussionPayload = {
  __typename?: 'ReopenDiscussionPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The discussion that was reopened. */
  discussion?: Maybe<Discussion>;
};

/** Autogenerated input type of ReopenIssue */
export type ReopenIssueInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** ID of the issue to be opened. */
  issueId: Scalars['ID'];
};

/** Autogenerated return type of ReopenIssue */
export type ReopenIssuePayload = {
  __typename?: 'ReopenIssuePayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The issue that was opened. */
  issue?: Maybe<Issue>;
};

/** Autogenerated input type of ReopenPullRequest */
export type ReopenPullRequestInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** ID of the pull request to be reopened. */
  pullRequestId: Scalars['ID'];
};

/** Autogenerated return type of ReopenPullRequest */
export type ReopenPullRequestPayload = {
  __typename?: 'ReopenPullRequestPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The pull request that was reopened. */
  pullRequest?: Maybe<PullRequest>;
};

/** Represents a 'reopened' event on any `Closable`. */
export type ReopenedEvent = Node & {
  __typename?: 'ReopenedEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Object that was reopened. */
  closable: Discussion | Issue | Milestone | Project | ProjectV2 | PullRequest;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  id: Scalars['ID'];
  /** The reason the issue state was changed to open. */
  stateReason?: Maybe<IssueStateReason>;
};

/** Audit log entry for a repo.access event. */
export type RepoAccessAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData & {
  __typename?: 'RepoAccessAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The repository associated with the action */
  repository?: Maybe<Repository>;
  /** The name of the repository */
  repositoryName?: Maybe<Scalars['String']>;
  /** The HTTP path for the repository */
  repositoryResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the repository */
  repositoryUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
  /** The visibility of the repository */
  visibility?: Maybe<RepoAccessAuditEntryVisibility>;
};

/** The privacy of a repository */
export type RepoAccessAuditEntryVisibility =
  /** The repository is visible only to users in the same business. */
  | 'INTERNAL'
  /** The repository is visible only to those with explicit access. */
  | 'PRIVATE'
  /** The repository is visible to everyone. */
  | 'PUBLIC';

/** Audit log entry for a repo.add_member event. */
export type RepoAddMemberAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData & {
  __typename?: 'RepoAddMemberAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The repository associated with the action */
  repository?: Maybe<Repository>;
  /** The name of the repository */
  repositoryName?: Maybe<Scalars['String']>;
  /** The HTTP path for the repository */
  repositoryResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the repository */
  repositoryUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
  /** The visibility of the repository */
  visibility?: Maybe<RepoAddMemberAuditEntryVisibility>;
};

/** The privacy of a repository */
export type RepoAddMemberAuditEntryVisibility =
  /** The repository is visible only to users in the same business. */
  | 'INTERNAL'
  /** The repository is visible only to those with explicit access. */
  | 'PRIVATE'
  /** The repository is visible to everyone. */
  | 'PUBLIC';

/** Audit log entry for a repo.add_topic event. */
export type RepoAddTopicAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData & TopicAuditEntryData & {
  __typename?: 'RepoAddTopicAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The repository associated with the action */
  repository?: Maybe<Repository>;
  /** The name of the repository */
  repositoryName?: Maybe<Scalars['String']>;
  /** The HTTP path for the repository */
  repositoryResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the repository */
  repositoryUrl?: Maybe<Scalars['URI']>;
  /** The name of the topic added to the repository */
  topic?: Maybe<Topic>;
  /** The name of the topic added to the repository */
  topicName?: Maybe<Scalars['String']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** Audit log entry for a repo.archived event. */
export type RepoArchivedAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData & {
  __typename?: 'RepoArchivedAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The repository associated with the action */
  repository?: Maybe<Repository>;
  /** The name of the repository */
  repositoryName?: Maybe<Scalars['String']>;
  /** The HTTP path for the repository */
  repositoryResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the repository */
  repositoryUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
  /** The visibility of the repository */
  visibility?: Maybe<RepoArchivedAuditEntryVisibility>;
};

/** The privacy of a repository */
export type RepoArchivedAuditEntryVisibility =
  /** The repository is visible only to users in the same business. */
  | 'INTERNAL'
  /** The repository is visible only to those with explicit access. */
  | 'PRIVATE'
  /** The repository is visible to everyone. */
  | 'PUBLIC';

/** Audit log entry for a repo.change_merge_setting event. */
export type RepoChangeMergeSettingAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData & {
  __typename?: 'RepoChangeMergeSettingAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** Whether the change was to enable (true) or disable (false) the merge type */
  isEnabled?: Maybe<Scalars['Boolean']>;
  /** The merge method affected by the change */
  mergeType?: Maybe<RepoChangeMergeSettingAuditEntryMergeType>;
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The repository associated with the action */
  repository?: Maybe<Repository>;
  /** The name of the repository */
  repositoryName?: Maybe<Scalars['String']>;
  /** The HTTP path for the repository */
  repositoryResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the repository */
  repositoryUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** The merge options available for pull requests to this repository. */
export type RepoChangeMergeSettingAuditEntryMergeType =
  /** The pull request is added to the base branch in a merge commit. */
  | 'MERGE'
  /** Commits from the pull request are added onto the base branch individually without a merge commit. */
  | 'REBASE'
  /** The pull request's commits are squashed into a single commit before they are merged to the base branch. */
  | 'SQUASH';

/** Audit log entry for a repo.config.disable_anonymous_git_access event. */
export type RepoConfigDisableAnonymousGitAccessAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData & {
  __typename?: 'RepoConfigDisableAnonymousGitAccessAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The repository associated with the action */
  repository?: Maybe<Repository>;
  /** The name of the repository */
  repositoryName?: Maybe<Scalars['String']>;
  /** The HTTP path for the repository */
  repositoryResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the repository */
  repositoryUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** Audit log entry for a repo.config.disable_collaborators_only event. */
export type RepoConfigDisableCollaboratorsOnlyAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData & {
  __typename?: 'RepoConfigDisableCollaboratorsOnlyAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The repository associated with the action */
  repository?: Maybe<Repository>;
  /** The name of the repository */
  repositoryName?: Maybe<Scalars['String']>;
  /** The HTTP path for the repository */
  repositoryResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the repository */
  repositoryUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** Audit log entry for a repo.config.disable_contributors_only event. */
export type RepoConfigDisableContributorsOnlyAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData & {
  __typename?: 'RepoConfigDisableContributorsOnlyAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The repository associated with the action */
  repository?: Maybe<Repository>;
  /** The name of the repository */
  repositoryName?: Maybe<Scalars['String']>;
  /** The HTTP path for the repository */
  repositoryResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the repository */
  repositoryUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** Audit log entry for a repo.config.disable_sockpuppet_disallowed event. */
export type RepoConfigDisableSockpuppetDisallowedAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData & {
  __typename?: 'RepoConfigDisableSockpuppetDisallowedAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The repository associated with the action */
  repository?: Maybe<Repository>;
  /** The name of the repository */
  repositoryName?: Maybe<Scalars['String']>;
  /** The HTTP path for the repository */
  repositoryResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the repository */
  repositoryUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** Audit log entry for a repo.config.enable_anonymous_git_access event. */
export type RepoConfigEnableAnonymousGitAccessAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData & {
  __typename?: 'RepoConfigEnableAnonymousGitAccessAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The repository associated with the action */
  repository?: Maybe<Repository>;
  /** The name of the repository */
  repositoryName?: Maybe<Scalars['String']>;
  /** The HTTP path for the repository */
  repositoryResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the repository */
  repositoryUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** Audit log entry for a repo.config.enable_collaborators_only event. */
export type RepoConfigEnableCollaboratorsOnlyAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData & {
  __typename?: 'RepoConfigEnableCollaboratorsOnlyAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The repository associated with the action */
  repository?: Maybe<Repository>;
  /** The name of the repository */
  repositoryName?: Maybe<Scalars['String']>;
  /** The HTTP path for the repository */
  repositoryResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the repository */
  repositoryUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** Audit log entry for a repo.config.enable_contributors_only event. */
export type RepoConfigEnableContributorsOnlyAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData & {
  __typename?: 'RepoConfigEnableContributorsOnlyAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The repository associated with the action */
  repository?: Maybe<Repository>;
  /** The name of the repository */
  repositoryName?: Maybe<Scalars['String']>;
  /** The HTTP path for the repository */
  repositoryResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the repository */
  repositoryUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** Audit log entry for a repo.config.enable_sockpuppet_disallowed event. */
export type RepoConfigEnableSockpuppetDisallowedAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData & {
  __typename?: 'RepoConfigEnableSockpuppetDisallowedAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The repository associated with the action */
  repository?: Maybe<Repository>;
  /** The name of the repository */
  repositoryName?: Maybe<Scalars['String']>;
  /** The HTTP path for the repository */
  repositoryResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the repository */
  repositoryUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** Audit log entry for a repo.config.lock_anonymous_git_access event. */
export type RepoConfigLockAnonymousGitAccessAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData & {
  __typename?: 'RepoConfigLockAnonymousGitAccessAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The repository associated with the action */
  repository?: Maybe<Repository>;
  /** The name of the repository */
  repositoryName?: Maybe<Scalars['String']>;
  /** The HTTP path for the repository */
  repositoryResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the repository */
  repositoryUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** Audit log entry for a repo.config.unlock_anonymous_git_access event. */
export type RepoConfigUnlockAnonymousGitAccessAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData & {
  __typename?: 'RepoConfigUnlockAnonymousGitAccessAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The repository associated with the action */
  repository?: Maybe<Repository>;
  /** The name of the repository */
  repositoryName?: Maybe<Scalars['String']>;
  /** The HTTP path for the repository */
  repositoryResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the repository */
  repositoryUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** Audit log entry for a repo.create event. */
export type RepoCreateAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData & {
  __typename?: 'RepoCreateAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  /** The name of the parent repository for this forked repository. */
  forkParentName?: Maybe<Scalars['String']>;
  /** The name of the root repository for this network. */
  forkSourceName?: Maybe<Scalars['String']>;
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The repository associated with the action */
  repository?: Maybe<Repository>;
  /** The name of the repository */
  repositoryName?: Maybe<Scalars['String']>;
  /** The HTTP path for the repository */
  repositoryResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the repository */
  repositoryUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
  /** The visibility of the repository */
  visibility?: Maybe<RepoCreateAuditEntryVisibility>;
};

/** The privacy of a repository */
export type RepoCreateAuditEntryVisibility =
  /** The repository is visible only to users in the same business. */
  | 'INTERNAL'
  /** The repository is visible only to those with explicit access. */
  | 'PRIVATE'
  /** The repository is visible to everyone. */
  | 'PUBLIC';

/** Audit log entry for a repo.destroy event. */
export type RepoDestroyAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData & {
  __typename?: 'RepoDestroyAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The repository associated with the action */
  repository?: Maybe<Repository>;
  /** The name of the repository */
  repositoryName?: Maybe<Scalars['String']>;
  /** The HTTP path for the repository */
  repositoryResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the repository */
  repositoryUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
  /** The visibility of the repository */
  visibility?: Maybe<RepoDestroyAuditEntryVisibility>;
};

/** The privacy of a repository */
export type RepoDestroyAuditEntryVisibility =
  /** The repository is visible only to users in the same business. */
  | 'INTERNAL'
  /** The repository is visible only to those with explicit access. */
  | 'PRIVATE'
  /** The repository is visible to everyone. */
  | 'PUBLIC';

/** Audit log entry for a repo.remove_member event. */
export type RepoRemoveMemberAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData & {
  __typename?: 'RepoRemoveMemberAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The repository associated with the action */
  repository?: Maybe<Repository>;
  /** The name of the repository */
  repositoryName?: Maybe<Scalars['String']>;
  /** The HTTP path for the repository */
  repositoryResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the repository */
  repositoryUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
  /** The visibility of the repository */
  visibility?: Maybe<RepoRemoveMemberAuditEntryVisibility>;
};

/** The privacy of a repository */
export type RepoRemoveMemberAuditEntryVisibility =
  /** The repository is visible only to users in the same business. */
  | 'INTERNAL'
  /** The repository is visible only to those with explicit access. */
  | 'PRIVATE'
  /** The repository is visible to everyone. */
  | 'PUBLIC';

/** Audit log entry for a repo.remove_topic event. */
export type RepoRemoveTopicAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData & TopicAuditEntryData & {
  __typename?: 'RepoRemoveTopicAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The repository associated with the action */
  repository?: Maybe<Repository>;
  /** The name of the repository */
  repositoryName?: Maybe<Scalars['String']>;
  /** The HTTP path for the repository */
  repositoryResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the repository */
  repositoryUrl?: Maybe<Scalars['URI']>;
  /** The name of the topic added to the repository */
  topic?: Maybe<Topic>;
  /** The name of the topic added to the repository */
  topicName?: Maybe<Scalars['String']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** The reasons a piece of content can be reported or minimized. */
export type ReportedContentClassifiers =
  /** An abusive or harassing piece of content */
  | 'ABUSE'
  /** A duplicated piece of content */
  | 'DUPLICATE'
  /** An irrelevant piece of content */
  | 'OFF_TOPIC'
  /** An outdated piece of content */
  | 'OUTDATED'
  /** The content has been resolved */
  | 'RESOLVED'
  /** A spammy piece of content */
  | 'SPAM';

/** A repository contains the content for a project. */
export type Repository = Node & PackageOwner & ProjectOwner & ProjectV2Recent & RepositoryInfo & Starrable & Subscribable & UniformResourceLocatable & {
  __typename?: 'Repository';
  /**
   * Whether or not a pull request head branch that is behind its base branch can
   * always be updated even if it is not required to be up to date before merging.
   */
  allowUpdateBranch: Scalars['Boolean'];
  /** A list of users that can be assigned to issues in this repository. */
  assignableUsers: UserConnection;
  /** Whether or not Auto-merge can be enabled on pull requests in this repository. */
  autoMergeAllowed: Scalars['Boolean'];
  /** A list of branch protection rules for this repository. */
  branchProtectionRules: BranchProtectionRuleConnection;
  /** Returns the code of conduct for this repository */
  codeOfConduct?: Maybe<CodeOfConduct>;
  /** Information extracted from the repository's `CODEOWNERS` file. */
  codeowners?: Maybe<RepositoryCodeowners>;
  /** A list of collaborators associated with the repository. */
  collaborators?: Maybe<RepositoryCollaboratorConnection>;
  /** A list of commit comments associated with the repository. */
  commitComments: CommitCommentConnection;
  /** Returns a list of contact links associated to the repository */
  contactLinks?: Maybe<Array<RepositoryContactLink>>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** The Ref associated with the repository's default branch. */
  defaultBranchRef?: Maybe<Ref>;
  /** Whether or not branches are automatically deleted when merged in this repository. */
  deleteBranchOnMerge: Scalars['Boolean'];
  /** A list of deploy keys that are on this repository. */
  deployKeys: DeployKeyConnection;
  /** Deployments associated with the repository */
  deployments: DeploymentConnection;
  /** The description of the repository. */
  description?: Maybe<Scalars['String']>;
  /** The description of the repository rendered to HTML. */
  descriptionHTML: Scalars['HTML'];
  /** Returns a single discussion from the current repository by number. */
  discussion?: Maybe<Discussion>;
  /** A list of discussion categories that are available in the repository. */
  discussionCategories: DiscussionCategoryConnection;
  /** A discussion category by slug. */
  discussionCategory?: Maybe<DiscussionCategory>;
  /** A list of discussions that have been opened in the repository. */
  discussions: DiscussionConnection;
  /** The number of kilobytes this repository occupies on disk. */
  diskUsage?: Maybe<Scalars['Int']>;
  /** Returns a single active environment from the current repository by name. */
  environment?: Maybe<Environment>;
  /** A list of environments that are in this repository. */
  environments: EnvironmentConnection;
  /** Returns how many forks there are of this repository in the whole network. */
  forkCount: Scalars['Int'];
  /** Whether this repository allows forks. */
  forkingAllowed: Scalars['Boolean'];
  /** A list of direct forked repositories. */
  forks: RepositoryConnection;
  /** The funding links for this repository */
  fundingLinks: Array<FundingLink>;
  /** Indicates if the repository has the Discussions feature enabled. */
  hasDiscussionsEnabled: Scalars['Boolean'];
  /** Indicates if the repository has issues feature enabled. */
  hasIssuesEnabled: Scalars['Boolean'];
  /** Indicates if the repository has the Projects feature enabled. */
  hasProjectsEnabled: Scalars['Boolean'];
  /** Whether vulnerability alerts are enabled for the repository. */
  hasVulnerabilityAlertsEnabled: Scalars['Boolean'];
  /** Indicates if the repository has wiki feature enabled. */
  hasWikiEnabled: Scalars['Boolean'];
  /** The repository's URL. */
  homepageUrl?: Maybe<Scalars['URI']>;
  id: Scalars['ID'];
  /** The interaction ability settings for this repository. */
  interactionAbility?: Maybe<RepositoryInteractionAbility>;
  /** Indicates if the repository is unmaintained. */
  isArchived: Scalars['Boolean'];
  /** Returns true if blank issue creation is allowed */
  isBlankIssuesEnabled: Scalars['Boolean'];
  /** Returns whether or not this repository disabled. */
  isDisabled: Scalars['Boolean'];
  /** Returns whether or not this repository is empty. */
  isEmpty: Scalars['Boolean'];
  /** Identifies if the repository is a fork. */
  isFork: Scalars['Boolean'];
  /** Indicates if a repository is either owned by an organization, or is a private fork of an organization repository. */
  isInOrganization: Scalars['Boolean'];
  /** Indicates if the repository has been locked or not. */
  isLocked: Scalars['Boolean'];
  /** Identifies if the repository is a mirror. */
  isMirror: Scalars['Boolean'];
  /** Identifies if the repository is private or internal. */
  isPrivate: Scalars['Boolean'];
  /** Returns true if this repository has a security policy */
  isSecurityPolicyEnabled?: Maybe<Scalars['Boolean']>;
  /** Identifies if the repository is a template that can be used to generate new repositories. */
  isTemplate: Scalars['Boolean'];
  /** Is this repository a user configuration repository? */
  isUserConfigurationRepository: Scalars['Boolean'];
  /** Returns a single issue from the current repository by number. */
  issue?: Maybe<Issue>;
  /** Returns a single issue-like object from the current repository by number. */
  issueOrPullRequest?: Maybe<IssueOrPullRequest>;
  /** Returns a list of issue templates associated to the repository */
  issueTemplates?: Maybe<Array<IssueTemplate>>;
  /** A list of issues that have been opened in the repository. */
  issues: IssueConnection;
  /** Returns a single label by name */
  label?: Maybe<Label>;
  /** A list of labels associated with the repository. */
  labels?: Maybe<LabelConnection>;
  /** A list containing a breakdown of the language composition of the repository. */
  languages?: Maybe<LanguageConnection>;
  /** Get the latest release for the repository if one exists. */
  latestRelease?: Maybe<Release>;
  /** The license associated with the repository */
  licenseInfo?: Maybe<License>;
  /** The reason the repository has been locked. */
  lockReason?: Maybe<RepositoryLockReason>;
  /** A list of Users that can be mentioned in the context of the repository. */
  mentionableUsers: UserConnection;
  /** Whether or not PRs are merged with a merge commit on this repository. */
  mergeCommitAllowed: Scalars['Boolean'];
  /** How the default commit message will be generated when merging a pull request. */
  mergeCommitMessage: MergeCommitMessage;
  /** How the default commit title will be generated when merging a pull request. */
  mergeCommitTitle: MergeCommitTitle;
  /** Returns a single milestone from the current repository by number. */
  milestone?: Maybe<Milestone>;
  /** A list of milestones associated with the repository. */
  milestones?: Maybe<MilestoneConnection>;
  /** The repository's original mirror URL. */
  mirrorUrl?: Maybe<Scalars['URI']>;
  /** The name of the repository. */
  name: Scalars['String'];
  /** The repository's name with owner. */
  nameWithOwner: Scalars['String'];
  /** A Git object in the repository */
  object?: Maybe<Blob | Commit | Tag | Tree>;
  /** The image used to represent this repository in Open Graph data. */
  openGraphImageUrl: Scalars['URI'];
  /** The User owner of the repository. */
  owner: Organization | User;
  /** A list of packages under the owner. */
  packages: PackageConnection;
  /** The repository parent, if this is a fork. */
  parent?: Maybe<Repository>;
  /** A list of discussions that have been pinned in this repository. */
  pinnedDiscussions: PinnedDiscussionConnection;
  /** A list of pinned issues for this repository. */
  pinnedIssues?: Maybe<PinnedIssueConnection>;
  /** The primary language of the repository's code. */
  primaryLanguage?: Maybe<Language>;
  /** Find project by number. */
  project?: Maybe<Project>;
  /** Finds and returns the Project according to the provided Project number. */
  projectV2?: Maybe<ProjectV2>;
  /** A list of projects under the owner. */
  projects: ProjectConnection;
  /** The HTTP path listing the repository's projects */
  projectsResourcePath: Scalars['URI'];
  /** The HTTP URL listing the repository's projects */
  projectsUrl: Scalars['URI'];
  /** List of projects linked to this repository. */
  projectsV2: ProjectV2Connection;
  /** Returns a single pull request from the current repository by number. */
  pullRequest?: Maybe<PullRequest>;
  /** Returns a list of pull request templates associated to the repository */
  pullRequestTemplates?: Maybe<Array<PullRequestTemplate>>;
  /** A list of pull requests that have been opened in the repository. */
  pullRequests: PullRequestConnection;
  /** Identifies when the repository was last pushed to. */
  pushedAt?: Maybe<Scalars['DateTime']>;
  /** Whether or not rebase-merging is enabled on this repository. */
  rebaseMergeAllowed: Scalars['Boolean'];
  /** Recent projects that this user has modified in the context of the owner. */
  recentProjects: ProjectV2Connection;
  /** Fetch a given ref from the repository */
  ref?: Maybe<Ref>;
  /** Fetch a list of refs from the repository */
  refs?: Maybe<RefConnection>;
  /** Lookup a single release given various criteria. */
  release?: Maybe<Release>;
  /** List of releases which are dependent on this repository. */
  releases: ReleaseConnection;
  /** A list of applied repository-topic associations for this repository. */
  repositoryTopics: RepositoryTopicConnection;
  /** The HTTP path for this repository */
  resourcePath: Scalars['URI'];
  /** The security policy URL. */
  securityPolicyUrl?: Maybe<Scalars['URI']>;
  /** A description of the repository, rendered to HTML without any links in it. */
  shortDescriptionHTML: Scalars['HTML'];
  /** Whether or not squash-merging is enabled on this repository. */
  squashMergeAllowed: Scalars['Boolean'];
  /** How the default commit message will be generated when squash merging a pull request. */
  squashMergeCommitMessage: SquashMergeCommitMessage;
  /** How the default commit title will be generated when squash merging a pull request. */
  squashMergeCommitTitle: SquashMergeCommitTitle;
  /**
   * Whether a squash merge commit can use the pull request title as default.
   * @deprecated `squashPrTitleUsedAsDefault` will be removed. Use `Repository.squashMergeCommitTitle` instead. Removal on 2023-04-01 UTC.
   */
  squashPrTitleUsedAsDefault: Scalars['Boolean'];
  /** The SSH URL to clone this repository */
  sshUrl: Scalars['GitSSHRemote'];
  /** Returns a count of how many stargazers there are on this object */
  stargazerCount: Scalars['Int'];
  /** A list of users who have starred this starrable. */
  stargazers: StargazerConnection;
  /**
   * Returns a list of all submodules in this repository parsed from the
   * .gitmodules file as of the default branch's HEAD commit.
   */
  submodules: SubmoduleConnection;
  /** Temporary authentication token for cloning this repository. */
  tempCloneToken?: Maybe<Scalars['String']>;
  /** The repository from which this repository was generated, if any. */
  templateRepository?: Maybe<Repository>;
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
  /** The HTTP URL for this repository */
  url: Scalars['URI'];
  /** Whether this repository has a custom image to use with Open Graph as opposed to being represented by the owner's avatar. */
  usesCustomOpenGraphImage: Scalars['Boolean'];
  /** Indicates whether the viewer has admin permissions on this repository. */
  viewerCanAdminister: Scalars['Boolean'];
  /** Can the current viewer create new projects on this owner. */
  viewerCanCreateProjects: Scalars['Boolean'];
  /** Check if the viewer is able to change their subscription status for the repository. */
  viewerCanSubscribe: Scalars['Boolean'];
  /** Indicates whether the viewer can update the topics of this repository. */
  viewerCanUpdateTopics: Scalars['Boolean'];
  /** The last commit email for the viewer. */
  viewerDefaultCommitEmail?: Maybe<Scalars['String']>;
  /** The last used merge method by the viewer or the default for the repository. */
  viewerDefaultMergeMethod: PullRequestMergeMethod;
  /** Returns a boolean indicating whether the viewing user has starred this starrable. */
  viewerHasStarred: Scalars['Boolean'];
  /** The users permission level on the repository. Will return null if authenticated as an GitHub App. */
  viewerPermission?: Maybe<RepositoryPermission>;
  /** A list of emails this viewer can commit with. */
  viewerPossibleCommitEmails?: Maybe<Array<Scalars['String']>>;
  /** Identifies if the viewer is watching, not watching, or ignoring the subscribable entity. */
  viewerSubscription?: Maybe<SubscriptionState>;
  /** Indicates the repository's visibility level. */
  visibility: RepositoryVisibility;
  /** Returns a single vulnerability alert from the current repository by number. */
  vulnerabilityAlert?: Maybe<RepositoryVulnerabilityAlert>;
  /** A list of vulnerability alerts that are on this repository. */
  vulnerabilityAlerts?: Maybe<RepositoryVulnerabilityAlertConnection>;
  /** A list of users watching the repository. */
  watchers: UserConnection;
  /** Whether contributors are required to sign off on web-based commits in this repository. */
  webCommitSignoffRequired: Scalars['Boolean'];
};


/** A repository contains the content for a project. */
export type RepositoryAssignableUsersArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  query?: InputMaybe<Scalars['String']>;
};


/** A repository contains the content for a project. */
export type RepositoryBranchProtectionRulesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A repository contains the content for a project. */
export type RepositoryCodeownersArgs = {
  refName?: InputMaybe<Scalars['String']>;
};


/** A repository contains the content for a project. */
export type RepositoryCollaboratorsArgs = {
  affiliation?: InputMaybe<CollaboratorAffiliation>;
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  login?: InputMaybe<Scalars['String']>;
  query?: InputMaybe<Scalars['String']>;
};


/** A repository contains the content for a project. */
export type RepositoryCommitCommentsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A repository contains the content for a project. */
export type RepositoryDeployKeysArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A repository contains the content for a project. */
export type RepositoryDeploymentsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  environments?: InputMaybe<Array<Scalars['String']>>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<DeploymentOrder>;
};


/** A repository contains the content for a project. */
export type RepositoryDiscussionArgs = {
  number: Scalars['Int'];
};


/** A repository contains the content for a project. */
export type RepositoryDiscussionCategoriesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  filterByAssignable?: InputMaybe<Scalars['Boolean']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A repository contains the content for a project. */
export type RepositoryDiscussionCategoryArgs = {
  slug: Scalars['String'];
};


/** A repository contains the content for a project. */
export type RepositoryDiscussionsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  categoryId?: InputMaybe<Scalars['ID']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<DiscussionOrder>;
  states?: InputMaybe<Array<DiscussionState>>;
};


/** A repository contains the content for a project. */
export type RepositoryEnvironmentArgs = {
  name: Scalars['String'];
};


/** A repository contains the content for a project. */
export type RepositoryEnvironmentsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A repository contains the content for a project. */
export type RepositoryForksArgs = {
  affiliations?: InputMaybe<Array<InputMaybe<RepositoryAffiliation>>>;
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  isLocked?: InputMaybe<Scalars['Boolean']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<RepositoryOrder>;
  ownerAffiliations?: InputMaybe<Array<InputMaybe<RepositoryAffiliation>>>;
  privacy?: InputMaybe<RepositoryPrivacy>;
};


/** A repository contains the content for a project. */
export type RepositoryIssueArgs = {
  number: Scalars['Int'];
};


/** A repository contains the content for a project. */
export type RepositoryIssueOrPullRequestArgs = {
  number: Scalars['Int'];
};


/** A repository contains the content for a project. */
export type RepositoryIssuesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  filterBy?: InputMaybe<IssueFilters>;
  first?: InputMaybe<Scalars['Int']>;
  labels?: InputMaybe<Array<Scalars['String']>>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<IssueOrder>;
  states?: InputMaybe<Array<IssueState>>;
};


/** A repository contains the content for a project. */
export type RepositoryLabelArgs = {
  name: Scalars['String'];
};


/** A repository contains the content for a project. */
export type RepositoryLabelsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<LabelOrder>;
  query?: InputMaybe<Scalars['String']>;
};


/** A repository contains the content for a project. */
export type RepositoryLanguagesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<LanguageOrder>;
};


/** A repository contains the content for a project. */
export type RepositoryMentionableUsersArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  query?: InputMaybe<Scalars['String']>;
};


/** A repository contains the content for a project. */
export type RepositoryMilestoneArgs = {
  number: Scalars['Int'];
};


/** A repository contains the content for a project. */
export type RepositoryMilestonesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<MilestoneOrder>;
  query?: InputMaybe<Scalars['String']>;
  states?: InputMaybe<Array<MilestoneState>>;
};


/** A repository contains the content for a project. */
export type RepositoryObjectArgs = {
  expression?: InputMaybe<Scalars['String']>;
  oid?: InputMaybe<Scalars['GitObjectID']>;
};


/** A repository contains the content for a project. */
export type RepositoryPackagesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  names?: InputMaybe<Array<InputMaybe<Scalars['String']>>>;
  orderBy?: InputMaybe<PackageOrder>;
  packageType?: InputMaybe<PackageType>;
  repositoryId?: InputMaybe<Scalars['ID']>;
};


/** A repository contains the content for a project. */
export type RepositoryPinnedDiscussionsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A repository contains the content for a project. */
export type RepositoryPinnedIssuesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A repository contains the content for a project. */
export type RepositoryProjectArgs = {
  number: Scalars['Int'];
};


/** A repository contains the content for a project. */
export type RepositoryProjectV2Args = {
  number: Scalars['Int'];
};


/** A repository contains the content for a project. */
export type RepositoryProjectsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ProjectOrder>;
  search?: InputMaybe<Scalars['String']>;
  states?: InputMaybe<Array<ProjectState>>;
};


/** A repository contains the content for a project. */
export type RepositoryProjectsV2Args = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ProjectV2Order>;
  query?: InputMaybe<Scalars['String']>;
};


/** A repository contains the content for a project. */
export type RepositoryPullRequestArgs = {
  number: Scalars['Int'];
};


/** A repository contains the content for a project. */
export type RepositoryPullRequestsArgs = {
  after?: InputMaybe<Scalars['String']>;
  baseRefName?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  headRefName?: InputMaybe<Scalars['String']>;
  labels?: InputMaybe<Array<Scalars['String']>>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<IssueOrder>;
  states?: InputMaybe<Array<PullRequestState>>;
};


/** A repository contains the content for a project. */
export type RepositoryRecentProjectsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A repository contains the content for a project. */
export type RepositoryRefArgs = {
  qualifiedName: Scalars['String'];
};


/** A repository contains the content for a project. */
export type RepositoryRefsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  direction?: InputMaybe<OrderDirection>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<RefOrder>;
  query?: InputMaybe<Scalars['String']>;
  refPrefix: Scalars['String'];
};


/** A repository contains the content for a project. */
export type RepositoryReleaseArgs = {
  tagName: Scalars['String'];
};


/** A repository contains the content for a project. */
export type RepositoryReleasesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ReleaseOrder>;
};


/** A repository contains the content for a project. */
export type RepositoryRepositoryTopicsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A repository contains the content for a project. */
export type RepositoryShortDescriptionHtmlArgs = {
  limit?: InputMaybe<Scalars['Int']>;
};


/** A repository contains the content for a project. */
export type RepositoryStargazersArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<StarOrder>;
};


/** A repository contains the content for a project. */
export type RepositorySubmodulesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A repository contains the content for a project. */
export type RepositoryVulnerabilityAlertArgs = {
  number: Scalars['Int'];
};


/** A repository contains the content for a project. */
export type RepositoryVulnerabilityAlertsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  dependencyScopes?: InputMaybe<Array<RepositoryVulnerabilityAlertDependencyScope>>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  states?: InputMaybe<Array<RepositoryVulnerabilityAlertState>>;
};


/** A repository contains the content for a project. */
export type RepositoryWatchersArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};

/** The affiliation of a user to a repository */
export type RepositoryAffiliation =
  /** Repositories that the user has been added to as a collaborator. */
  | 'COLLABORATOR'
  /**
   * Repositories that the user has access to through being a member of an
   * organization. This includes every repository on every team that the user is on.
   */
  | 'ORGANIZATION_MEMBER'
  /** Repositories that are owned by the authenticated user. */
  | 'OWNER';

/** Metadata for an audit entry with action repo.* */
export type RepositoryAuditEntryData = {
  /** The repository associated with the action */
  repository?: Maybe<Repository>;
  /** The name of the repository */
  repositoryName?: Maybe<Scalars['String']>;
  /** The HTTP path for the repository */
  repositoryResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the repository */
  repositoryUrl?: Maybe<Scalars['URI']>;
};

/** Information extracted from a repository's `CODEOWNERS` file. */
export type RepositoryCodeowners = {
  __typename?: 'RepositoryCodeowners';
  /** Any problems that were encountered while parsing the `CODEOWNERS` file. */
  errors: Array<RepositoryCodeownersError>;
};

/** An error in a `CODEOWNERS` file. */
export type RepositoryCodeownersError = {
  __typename?: 'RepositoryCodeownersError';
  /** The column number where the error occurs. */
  column: Scalars['Int'];
  /** A short string describing the type of error. */
  kind: Scalars['String'];
  /** The line number where the error occurs. */
  line: Scalars['Int'];
  /** A complete description of the error, combining information from other fields. */
  message: Scalars['String'];
  /** The path to the file when the error occurs. */
  path: Scalars['String'];
  /** The content of the line where the error occurs. */
  source: Scalars['String'];
  /** A suggestion of how to fix the error. */
  suggestion?: Maybe<Scalars['String']>;
};

/** The connection type for User. */
export type RepositoryCollaboratorConnection = {
  __typename?: 'RepositoryCollaboratorConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<RepositoryCollaboratorEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<User>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** Represents a user who is a collaborator of a repository. */
export type RepositoryCollaboratorEdge = {
  __typename?: 'RepositoryCollaboratorEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  node: User;
  /** The permission the user has on the repository. */
  permission: RepositoryPermission;
  /** A list of sources for the user's access to the repository. */
  permissionSources?: Maybe<Array<PermissionSource>>;
};

/** A list of repositories owned by the subject. */
export type RepositoryConnection = {
  __typename?: 'RepositoryConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<RepositoryEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<Repository>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
  /** The total size in kilobytes of all repositories in the connection. */
  totalDiskUsage: Scalars['Int'];
};

/** A repository contact link. */
export type RepositoryContactLink = {
  __typename?: 'RepositoryContactLink';
  /** The contact link purpose. */
  about: Scalars['String'];
  /** The contact link name. */
  name: Scalars['String'];
  /** The contact link URL. */
  url: Scalars['URI'];
};

/** The reason a repository is listed as 'contributed'. */
export type RepositoryContributionType =
  /** Created a commit */
  | 'COMMIT'
  /** Created an issue */
  | 'ISSUE'
  /** Created a pull request */
  | 'PULL_REQUEST'
  /** Reviewed a pull request */
  | 'PULL_REQUEST_REVIEW'
  /** Created the repository */
  | 'REPOSITORY';

/** Represents an author of discussions in repositories. */
export type RepositoryDiscussionAuthor = {
  /** Discussions this user has started. */
  repositoryDiscussions: DiscussionConnection;
};


/** Represents an author of discussions in repositories. */
export type RepositoryDiscussionAuthorRepositoryDiscussionsArgs = {
  after?: InputMaybe<Scalars['String']>;
  answered?: InputMaybe<Scalars['Boolean']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<DiscussionOrder>;
  repositoryId?: InputMaybe<Scalars['ID']>;
  states?: InputMaybe<Array<DiscussionState>>;
};

/** Represents an author of discussion comments in repositories. */
export type RepositoryDiscussionCommentAuthor = {
  /** Discussion comments this user has authored. */
  repositoryDiscussionComments: DiscussionCommentConnection;
};


/** Represents an author of discussion comments in repositories. */
export type RepositoryDiscussionCommentAuthorRepositoryDiscussionCommentsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  onlyAnswers?: InputMaybe<Scalars['Boolean']>;
  repositoryId?: InputMaybe<Scalars['ID']>;
};

/** An edge in a connection. */
export type RepositoryEdge = {
  __typename?: 'RepositoryEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<Repository>;
};

/** A subset of repository info. */
export type RepositoryInfo = {
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** The description of the repository. */
  description?: Maybe<Scalars['String']>;
  /** The description of the repository rendered to HTML. */
  descriptionHTML: Scalars['HTML'];
  /** Returns how many forks there are of this repository in the whole network. */
  forkCount: Scalars['Int'];
  /** Indicates if the repository has the Discussions feature enabled. */
  hasDiscussionsEnabled: Scalars['Boolean'];
  /** Indicates if the repository has issues feature enabled. */
  hasIssuesEnabled: Scalars['Boolean'];
  /** Indicates if the repository has the Projects feature enabled. */
  hasProjectsEnabled: Scalars['Boolean'];
  /** Indicates if the repository has wiki feature enabled. */
  hasWikiEnabled: Scalars['Boolean'];
  /** The repository's URL. */
  homepageUrl?: Maybe<Scalars['URI']>;
  /** Indicates if the repository is unmaintained. */
  isArchived: Scalars['Boolean'];
  /** Identifies if the repository is a fork. */
  isFork: Scalars['Boolean'];
  /** Indicates if a repository is either owned by an organization, or is a private fork of an organization repository. */
  isInOrganization: Scalars['Boolean'];
  /** Indicates if the repository has been locked or not. */
  isLocked: Scalars['Boolean'];
  /** Identifies if the repository is a mirror. */
  isMirror: Scalars['Boolean'];
  /** Identifies if the repository is private or internal. */
  isPrivate: Scalars['Boolean'];
  /** Identifies if the repository is a template that can be used to generate new repositories. */
  isTemplate: Scalars['Boolean'];
  /** The license associated with the repository */
  licenseInfo?: Maybe<License>;
  /** The reason the repository has been locked. */
  lockReason?: Maybe<RepositoryLockReason>;
  /** The repository's original mirror URL. */
  mirrorUrl?: Maybe<Scalars['URI']>;
  /** The name of the repository. */
  name: Scalars['String'];
  /** The repository's name with owner. */
  nameWithOwner: Scalars['String'];
  /** The image used to represent this repository in Open Graph data. */
  openGraphImageUrl: Scalars['URI'];
  /** The User owner of the repository. */
  owner: Organization | User;
  /** Identifies when the repository was last pushed to. */
  pushedAt?: Maybe<Scalars['DateTime']>;
  /** The HTTP path for this repository */
  resourcePath: Scalars['URI'];
  /** A description of the repository, rendered to HTML without any links in it. */
  shortDescriptionHTML: Scalars['HTML'];
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
  /** The HTTP URL for this repository */
  url: Scalars['URI'];
  /** Whether this repository has a custom image to use with Open Graph as opposed to being represented by the owner's avatar. */
  usesCustomOpenGraphImage: Scalars['Boolean'];
  /** Indicates the repository's visibility level. */
  visibility: RepositoryVisibility;
};


/** A subset of repository info. */
export type RepositoryInfoShortDescriptionHtmlArgs = {
  limit?: InputMaybe<Scalars['Int']>;
};

/** Repository interaction limit that applies to this object. */
export type RepositoryInteractionAbility = {
  __typename?: 'RepositoryInteractionAbility';
  /** The time the currently active limit expires. */
  expiresAt?: Maybe<Scalars['DateTime']>;
  /** The current limit that is enabled on this object. */
  limit: RepositoryInteractionLimit;
  /** The origin of the currently active interaction limit. */
  origin: RepositoryInteractionLimitOrigin;
};

/** A repository interaction limit. */
export type RepositoryInteractionLimit =
  /** Users that are not collaborators will not be able to interact with the repository. */
  | 'COLLABORATORS_ONLY'
  /** Users that have not previously committed to a repository’s default branch will be unable to interact with the repository. */
  | 'CONTRIBUTORS_ONLY'
  /** Users that have recently created their account will be unable to interact with the repository. */
  | 'EXISTING_USERS'
  /** No interaction limits are enabled. */
  | 'NO_LIMIT';

/** The length for a repository interaction limit to be enabled for. */
export type RepositoryInteractionLimitExpiry =
  /** The interaction limit will expire after 1 day. */
  | 'ONE_DAY'
  /** The interaction limit will expire after 1 month. */
  | 'ONE_MONTH'
  /** The interaction limit will expire after 1 week. */
  | 'ONE_WEEK'
  /** The interaction limit will expire after 6 months. */
  | 'SIX_MONTHS'
  /** The interaction limit will expire after 3 days. */
  | 'THREE_DAYS';

/** Indicates where an interaction limit is configured. */
export type RepositoryInteractionLimitOrigin =
  /** A limit that is configured at the organization level. */
  | 'ORGANIZATION'
  /** A limit that is configured at the repository level. */
  | 'REPOSITORY'
  /** A limit that is configured at the user-wide level. */
  | 'USER';

/** An invitation for a user to be added to a repository. */
export type RepositoryInvitation = Node & {
  __typename?: 'RepositoryInvitation';
  /** The email address that received the invitation. */
  email?: Maybe<Scalars['String']>;
  id: Scalars['ID'];
  /** The user who received the invitation. */
  invitee?: Maybe<User>;
  /** The user who created the invitation. */
  inviter: User;
  /** The permalink for this repository invitation. */
  permalink: Scalars['URI'];
  /** The permission granted on this repository by this invitation. */
  permission: RepositoryPermission;
  /** The Repository the user is invited to. */
  repository?: Maybe<Repository>;
};

/** A list of repository invitations. */
export type RepositoryInvitationConnection = {
  __typename?: 'RepositoryInvitationConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<RepositoryInvitationEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<RepositoryInvitation>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type RepositoryInvitationEdge = {
  __typename?: 'RepositoryInvitationEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<RepositoryInvitation>;
};

/** Ordering options for repository invitation connections. */
export type RepositoryInvitationOrder = {
  /** The ordering direction. */
  direction: OrderDirection;
  /** The field to order repository invitations by. */
  field: RepositoryInvitationOrderField;
};

/** Properties by which repository invitation connections can be ordered. */
export type RepositoryInvitationOrderField =
  /** Order repository invitations by creation time */
  | 'CREATED_AT';

/** The possible reasons a given repository could be in a locked state. */
export type RepositoryLockReason =
  /** The repository is locked due to a billing related reason. */
  | 'BILLING'
  /** The repository is locked due to a migration. */
  | 'MIGRATING'
  /** The repository is locked due to a move. */
  | 'MOVING'
  /** The repository is locked due to a rename. */
  | 'RENAME'
  /** The repository is locked due to a trade controls related reason. */
  | 'TRADE_RESTRICTION';

/** A GitHub Enterprise Importer (GEI) repository migration. */
export type RepositoryMigration = Migration & Node & {
  __typename?: 'RepositoryMigration';
  /** The migration flag to continue on error. */
  continueOnError: Scalars['Boolean'];
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['String']>;
  /** The reason the migration failed. */
  failureReason?: Maybe<Scalars['String']>;
  id: Scalars['ID'];
  /** The URL for the migration log (expires 1 day after migration completes). */
  migrationLogUrl?: Maybe<Scalars['URI']>;
  /** The migration source. */
  migrationSource: MigrationSource;
  /** The target repository name. */
  repositoryName: Scalars['String'];
  /** The migration source URL, for example `https://github.com` or `https://monalisa.ghe.com`. */
  sourceUrl: Scalars['URI'];
  /** The migration state. */
  state: MigrationState;
};

/** The connection type for RepositoryMigration. */
export type RepositoryMigrationConnection = {
  __typename?: 'RepositoryMigrationConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<RepositoryMigrationEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<RepositoryMigration>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** Represents a repository migration. */
export type RepositoryMigrationEdge = {
  __typename?: 'RepositoryMigrationEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<RepositoryMigration>;
};

/** Ordering options for repository migrations. */
export type RepositoryMigrationOrder = {
  /** The ordering direction. */
  direction: RepositoryMigrationOrderDirection;
  /** The field to order repository migrations by. */
  field: RepositoryMigrationOrderField;
};

/** Possible directions in which to order a list of repository migrations when provided an `orderBy` argument. */
export type RepositoryMigrationOrderDirection =
  /** Specifies an ascending order for a given `orderBy` argument. */
  | 'ASC'
  /** Specifies a descending order for a given `orderBy` argument. */
  | 'DESC';

/** Properties by which repository migrations can be ordered. */
export type RepositoryMigrationOrderField =
  /** Order mannequins why when they were created. */
  | 'CREATED_AT';

/** Represents a object that belongs to a repository. */
export type RepositoryNode = {
  /** The repository associated with this node. */
  repository: Repository;
};

/** Ordering options for repository connections */
export type RepositoryOrder = {
  /** The ordering direction. */
  direction: OrderDirection;
  /** The field to order repositories by. */
  field: RepositoryOrderField;
};

/** Properties by which repository connections can be ordered. */
export type RepositoryOrderField =
  /** Order repositories by creation time */
  | 'CREATED_AT'
  /** Order repositories by name */
  | 'NAME'
  /** Order repositories by push time */
  | 'PUSHED_AT'
  /** Order repositories by number of stargazers */
  | 'STARGAZERS'
  /** Order repositories by update time */
  | 'UPDATED_AT';

/** Represents an owner of a Repository. */
export type RepositoryOwner = {
  /** A URL pointing to the owner's public avatar. */
  avatarUrl: Scalars['URI'];
  id: Scalars['ID'];
  /** The username used to login. */
  login: Scalars['String'];
  /** A list of repositories that the user owns. */
  repositories: RepositoryConnection;
  /** Find Repository. */
  repository?: Maybe<Repository>;
  /** The HTTP URL for the owner. */
  resourcePath: Scalars['URI'];
  /** The HTTP URL for the owner. */
  url: Scalars['URI'];
};


/** Represents an owner of a Repository. */
export type RepositoryOwnerAvatarUrlArgs = {
  size?: InputMaybe<Scalars['Int']>;
};


/** Represents an owner of a Repository. */
export type RepositoryOwnerRepositoriesArgs = {
  affiliations?: InputMaybe<Array<InputMaybe<RepositoryAffiliation>>>;
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  isFork?: InputMaybe<Scalars['Boolean']>;
  isLocked?: InputMaybe<Scalars['Boolean']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<RepositoryOrder>;
  ownerAffiliations?: InputMaybe<Array<InputMaybe<RepositoryAffiliation>>>;
  privacy?: InputMaybe<RepositoryPrivacy>;
};


/** Represents an owner of a Repository. */
export type RepositoryOwnerRepositoryArgs = {
  followRenames?: InputMaybe<Scalars['Boolean']>;
  name: Scalars['String'];
};

/** The access level to a repository */
export type RepositoryPermission =
  /**
   * Can read, clone, and push to this repository. Can also manage issues, pull
   * requests, and repository settings, including adding collaborators
   */
  | 'ADMIN'
  /** Can read, clone, and push to this repository. They can also manage issues, pull requests, and some repository settings */
  | 'MAINTAIN'
  /** Can read and clone this repository. Can also open and comment on issues and pull requests */
  | 'READ'
  /** Can read and clone this repository. Can also manage issues and pull requests */
  | 'TRIAGE'
  /** Can read, clone, and push to this repository. Can also manage issues and pull requests */
  | 'WRITE';

/** The privacy of a repository */
export type RepositoryPrivacy =
  /** Private */
  | 'PRIVATE'
  /** Public */
  | 'PUBLIC';

/** A repository-topic connects a repository to a topic. */
export type RepositoryTopic = Node & UniformResourceLocatable & {
  __typename?: 'RepositoryTopic';
  id: Scalars['ID'];
  /** The HTTP path for this repository-topic. */
  resourcePath: Scalars['URI'];
  /** The topic. */
  topic: Topic;
  /** The HTTP URL for this repository-topic. */
  url: Scalars['URI'];
};

/** The connection type for RepositoryTopic. */
export type RepositoryTopicConnection = {
  __typename?: 'RepositoryTopicConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<RepositoryTopicEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<RepositoryTopic>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type RepositoryTopicEdge = {
  __typename?: 'RepositoryTopicEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<RepositoryTopic>;
};

/** The repository's visibility level. */
export type RepositoryVisibility =
  /** The repository is visible only to users in the same business. */
  | 'INTERNAL'
  /** The repository is visible only to those with explicit access. */
  | 'PRIVATE'
  /** The repository is visible to everyone. */
  | 'PUBLIC';

/** Audit log entry for a repository_visibility_change.disable event. */
export type RepositoryVisibilityChangeDisableAuditEntry = AuditEntry & EnterpriseAuditEntryData & Node & OrganizationAuditEntryData & {
  __typename?: 'RepositoryVisibilityChangeDisableAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  /** The HTTP path for this enterprise. */
  enterpriseResourcePath?: Maybe<Scalars['URI']>;
  /** The slug of the enterprise. */
  enterpriseSlug?: Maybe<Scalars['String']>;
  /** The HTTP URL for this enterprise. */
  enterpriseUrl?: Maybe<Scalars['URI']>;
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** Audit log entry for a repository_visibility_change.enable event. */
export type RepositoryVisibilityChangeEnableAuditEntry = AuditEntry & EnterpriseAuditEntryData & Node & OrganizationAuditEntryData & {
  __typename?: 'RepositoryVisibilityChangeEnableAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  /** The HTTP path for this enterprise. */
  enterpriseResourcePath?: Maybe<Scalars['URI']>;
  /** The slug of the enterprise. */
  enterpriseSlug?: Maybe<Scalars['String']>;
  /** The HTTP URL for this enterprise. */
  enterpriseUrl?: Maybe<Scalars['URI']>;
  id: Scalars['ID'];
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** A Dependabot alert for a repository with a dependency affected by a security vulnerability. */
export type RepositoryVulnerabilityAlert = Node & RepositoryNode & {
  __typename?: 'RepositoryVulnerabilityAlert';
  /** When was the alert created? */
  createdAt: Scalars['DateTime'];
  /** The associated Dependabot update */
  dependabotUpdate?: Maybe<DependabotUpdate>;
  /** The scope of an alert's dependency */
  dependencyScope?: Maybe<RepositoryVulnerabilityAlertDependencyScope>;
  /** Comment explaining the reason the alert was dismissed */
  dismissComment?: Maybe<Scalars['String']>;
  /** The reason the alert was dismissed */
  dismissReason?: Maybe<Scalars['String']>;
  /** When was the alert dismissed? */
  dismissedAt?: Maybe<Scalars['DateTime']>;
  /** The user who dismissed the alert */
  dismisser?: Maybe<User>;
  /**
   * The reason the alert was marked as fixed.
   * @deprecated The `fixReason` field is being removed. You can still use `fixedAt` and `dismissReason`. Removal on 2023-04-01 UTC.
   */
  fixReason?: Maybe<Scalars['String']>;
  /** When was the alert fixed? */
  fixedAt?: Maybe<Scalars['DateTime']>;
  id: Scalars['ID'];
  /** Identifies the alert number. */
  number: Scalars['Int'];
  /** The associated repository */
  repository: Repository;
  /** The associated security advisory */
  securityAdvisory?: Maybe<SecurityAdvisory>;
  /** The associated security vulnerability */
  securityVulnerability?: Maybe<SecurityVulnerability>;
  /** Identifies the state of the alert. */
  state: RepositoryVulnerabilityAlertState;
  /** The vulnerable manifest filename */
  vulnerableManifestFilename: Scalars['String'];
  /** The vulnerable manifest path */
  vulnerableManifestPath: Scalars['String'];
  /** The vulnerable requirements */
  vulnerableRequirements?: Maybe<Scalars['String']>;
};

/** The connection type for RepositoryVulnerabilityAlert. */
export type RepositoryVulnerabilityAlertConnection = {
  __typename?: 'RepositoryVulnerabilityAlertConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<RepositoryVulnerabilityAlertEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<RepositoryVulnerabilityAlert>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** The possible scopes of an alert's dependency. */
export type RepositoryVulnerabilityAlertDependencyScope =
  /** A dependency that is only used in development */
  | 'DEVELOPMENT'
  /** A dependency that is leveraged during application runtime */
  | 'RUNTIME';

/** An edge in a connection. */
export type RepositoryVulnerabilityAlertEdge = {
  __typename?: 'RepositoryVulnerabilityAlertEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<RepositoryVulnerabilityAlert>;
};

/** The possible states of an alert */
export type RepositoryVulnerabilityAlertState =
  /** An alert that has been manually closed by a user. */
  | 'DISMISSED'
  /** An alert that has been resolved by a code change. */
  | 'FIXED'
  /** An alert that is still open. */
  | 'OPEN';

/** Autogenerated input type of RequestReviews */
export type RequestReviewsInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The Node ID of the pull request to modify. */
  pullRequestId: Scalars['ID'];
  /** The Node IDs of the team to request. */
  teamIds?: InputMaybe<Array<Scalars['ID']>>;
  /** Add users to the set rather than replace. */
  union?: InputMaybe<Scalars['Boolean']>;
  /** The Node IDs of the user to request. */
  userIds?: InputMaybe<Array<Scalars['ID']>>;
};

/** Autogenerated return type of RequestReviews */
export type RequestReviewsPayload = {
  __typename?: 'RequestReviewsPayload';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The pull request that is getting requests. */
  pullRequest?: Maybe<PullRequest>;
  /** The edge from the pull request to the requested reviewers. */
  requestedReviewersEdge?: Maybe<UserEdge>;
};

/** The possible states that can be requested when creating a check run. */
export type RequestableCheckStatusState =
  /** The check suite or run has been completed. */
  | 'COMPLETED'
  /** The check suite or run is in progress. */
  | 'IN_PROGRESS'
  /** The check suite or run is in pending state. */
  | 'PENDING'
  /** The check suite or run has been queued. */
  | 'QUEUED'
  /** The check suite or run is in waiting state. */
  | 'WAITING';

/** Types that can be requested reviewers. */
export type RequestedReviewer = Mannequin | Team | User;

/** The connection type for RequestedReviewer. */
export type RequestedReviewerConnection = {
  __typename?: 'RequestedReviewerConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<RequestedReviewerEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<RequestedReviewer>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type RequestedReviewerEdge = {
  __typename?: 'RequestedReviewerEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<RequestedReviewer>;
};

/** Represents a type that can be required by a pull request for merging. */
export type RequirableByPullRequest = {
  /** Whether this is required to pass before merging for a specific pull request. */
  isRequired: Scalars['Boolean'];
};


/** Represents a type that can be required by a pull request for merging. */
export type RequirableByPullRequestIsRequiredArgs = {
  pullRequestId?: InputMaybe<Scalars['ID']>;
  pullRequestNumber?: InputMaybe<Scalars['Int']>;
};

/** Represents a required status check for a protected branch, but not any specific run of that check. */
export type RequiredStatusCheckDescription = {
  __typename?: 'RequiredStatusCheckDescription';
  /** The App that must provide this status in order for it to be accepted. */
  app?: Maybe<App>;
  /** The name of this status. */
  context: Scalars['String'];
};

/** Specifies the attributes for a new or updated required status check. */
export type RequiredStatusCheckInput = {
  /**
   * The ID of the App that must set the status in order for it to be accepted.
   * Omit this value to use whichever app has recently been setting this status, or
   * use "any" to allow any app to set the status.
   */
  appId?: InputMaybe<Scalars['ID']>;
  /** Status check context that must pass for commits to be accepted to the matching branch. */
  context: Scalars['String'];
};

/** Autogenerated input type of RerequestCheckSuite */
export type RerequestCheckSuiteInput = {
  /** The Node ID of the check suite. */
  checkSuiteId: Scalars['ID'];
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The Node ID of the repository. */
  repositoryId: Scalars['ID'];
};

/** Autogenerated return type of RerequestCheckSuite */
export type RerequestCheckSuitePayload = {
  __typename?: 'RerequestCheckSuitePayload';
  /** The requested check suite. */
  checkSuite?: Maybe<CheckSuite>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
};

/** Autogenerated input type of ResolveReviewThread */
export type ResolveReviewThreadInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the thread to resolve */
  threadId: Scalars['ID'];
};

/** Autogenerated return type of ResolveReviewThread */
export type ResolveReviewThreadPayload = {
  __typename?: 'ResolveReviewThreadPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The thread to resolve. */
  thread?: Maybe<PullRequestReviewThread>;
};

/** Represents a private contribution a user made on GitHub. */
export type RestrictedContribution = Contribution & {
  __typename?: 'RestrictedContribution';
  /**
   * Whether this contribution is associated with a record you do not have access to. For
   * example, your own 'first issue' contribution may have been made on a repository you can no
   * longer access.
   */
  isRestricted: Scalars['Boolean'];
  /** When this contribution was made. */
  occurredAt: Scalars['DateTime'];
  /** The HTTP path for this contribution. */
  resourcePath: Scalars['URI'];
  /** The HTTP URL for this contribution. */
  url: Scalars['URI'];
  /** The user who made this contribution. */
  user: User;
};

/** Autogenerated input type of RetireSponsorsTier */
export type RetireSponsorsTierInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the published tier to retire. */
  tierId: Scalars['ID'];
};

/** Autogenerated return type of RetireSponsorsTier */
export type RetireSponsorsTierPayload = {
  __typename?: 'RetireSponsorsTierPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The tier that was retired. */
  sponsorsTier?: Maybe<SponsorsTier>;
};

/** Autogenerated input type of RevertPullRequest */
export type RevertPullRequestInput = {
  /** The description of the revert pull request. */
  body?: InputMaybe<Scalars['String']>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** Indicates whether the revert pull request should be a draft. */
  draft?: InputMaybe<Scalars['Boolean']>;
  /** The ID of the pull request to revert. */
  pullRequestId: Scalars['ID'];
  /** The title of the revert pull request. */
  title?: InputMaybe<Scalars['String']>;
};

/** Autogenerated return type of RevertPullRequest */
export type RevertPullRequestPayload = {
  __typename?: 'RevertPullRequestPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The pull request that was reverted. */
  pullRequest?: Maybe<PullRequest>;
  /** The new pull request that reverts the input pull request. */
  revertPullRequest?: Maybe<PullRequest>;
};

/** A user, team, or app who has the ability to dismiss a review on a protected branch. */
export type ReviewDismissalAllowance = Node & {
  __typename?: 'ReviewDismissalAllowance';
  /** The actor that can dismiss. */
  actor?: Maybe<ReviewDismissalAllowanceActor>;
  /** Identifies the branch protection rule associated with the allowed user, team, or app. */
  branchProtectionRule?: Maybe<BranchProtectionRule>;
  id: Scalars['ID'];
};

/** Types that can be an actor. */
export type ReviewDismissalAllowanceActor = App | Team | User;

/** The connection type for ReviewDismissalAllowance. */
export type ReviewDismissalAllowanceConnection = {
  __typename?: 'ReviewDismissalAllowanceConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<ReviewDismissalAllowanceEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<ReviewDismissalAllowance>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type ReviewDismissalAllowanceEdge = {
  __typename?: 'ReviewDismissalAllowanceEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<ReviewDismissalAllowance>;
};

/** Represents a 'review_dismissed' event on a given issue or pull request. */
export type ReviewDismissedEvent = Node & UniformResourceLocatable & {
  __typename?: 'ReviewDismissedEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** Identifies the optional message associated with the 'review_dismissed' event. */
  dismissalMessage?: Maybe<Scalars['String']>;
  /** Identifies the optional message associated with the event, rendered to HTML. */
  dismissalMessageHTML?: Maybe<Scalars['String']>;
  id: Scalars['ID'];
  /** Identifies the previous state of the review with the 'review_dismissed' event. */
  previousReviewState: PullRequestReviewState;
  /** PullRequest referenced by event. */
  pullRequest: PullRequest;
  /** Identifies the commit which caused the review to become stale. */
  pullRequestCommit?: Maybe<PullRequestCommit>;
  /** The HTTP path for this review dismissed event. */
  resourcePath: Scalars['URI'];
  /** Identifies the review associated with the 'review_dismissed' event. */
  review?: Maybe<PullRequestReview>;
  /** The HTTP URL for this review dismissed event. */
  url: Scalars['URI'];
};

/** A request for a user to review a pull request. */
export type ReviewRequest = Node & {
  __typename?: 'ReviewRequest';
  /** Whether this request was created for a code owner */
  asCodeOwner: Scalars['Boolean'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  id: Scalars['ID'];
  /** Identifies the pull request associated with this review request. */
  pullRequest: PullRequest;
  /** The reviewer that is requested. */
  requestedReviewer?: Maybe<RequestedReviewer>;
};

/** The connection type for ReviewRequest. */
export type ReviewRequestConnection = {
  __typename?: 'ReviewRequestConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<ReviewRequestEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<ReviewRequest>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type ReviewRequestEdge = {
  __typename?: 'ReviewRequestEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<ReviewRequest>;
};

/** Represents an 'review_request_removed' event on a given pull request. */
export type ReviewRequestRemovedEvent = Node & {
  __typename?: 'ReviewRequestRemovedEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  id: Scalars['ID'];
  /** PullRequest referenced by event. */
  pullRequest: PullRequest;
  /** Identifies the reviewer whose review request was removed. */
  requestedReviewer?: Maybe<RequestedReviewer>;
};

/** Represents an 'review_requested' event on a given pull request. */
export type ReviewRequestedEvent = Node & {
  __typename?: 'ReviewRequestedEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  id: Scalars['ID'];
  /** PullRequest referenced by event. */
  pullRequest: PullRequest;
  /** Identifies the reviewer whose review was requested. */
  requestedReviewer?: Maybe<RequestedReviewer>;
};

/**
 * A hovercard context with a message describing the current code review state of the pull
 * request.
 */
export type ReviewStatusHovercardContext = HovercardContext & {
  __typename?: 'ReviewStatusHovercardContext';
  /** A string describing this context */
  message: Scalars['String'];
  /** An octicon to accompany this context */
  octicon: Scalars['String'];
  /** The current status of the pull request with respect to code review. */
  reviewDecision?: Maybe<PullRequestReviewDecision>;
};

/** Autogenerated input type of RevokeEnterpriseOrganizationsMigratorRole */
export type RevokeEnterpriseOrganizationsMigratorRoleInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the enterprise to which all organizations managed by it will be granted the migrator role. */
  enterpriseId: Scalars['ID'];
  /** The login of the user to revoke the migrator role */
  login: Scalars['String'];
};

/** Autogenerated return type of RevokeEnterpriseOrganizationsMigratorRole */
export type RevokeEnterpriseOrganizationsMigratorRolePayload = {
  __typename?: 'RevokeEnterpriseOrganizationsMigratorRolePayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The organizations that had the migrator role revoked for the given user. */
  organizations?: Maybe<OrganizationConnection>;
};


/** Autogenerated return type of RevokeEnterpriseOrganizationsMigratorRole */
export type RevokeEnterpriseOrganizationsMigratorRolePayloadOrganizationsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};

/** Autogenerated input type of RevokeMigratorRole */
export type RevokeMigratorRoleInput = {
  /** The user login or Team slug to revoke the migrator role from. */
  actor: Scalars['String'];
  /** Specifies the type of the actor, can be either USER or TEAM. */
  actorType: ActorType;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the organization that the user/team belongs to. */
  organizationId: Scalars['ID'];
};

/** Autogenerated return type of RevokeMigratorRole */
export type RevokeMigratorRolePayload = {
  __typename?: 'RevokeMigratorRolePayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** Did the operation succeed? */
  success?: Maybe<Scalars['Boolean']>;
};

/** Possible roles a user may have in relation to an organization. */
export type RoleInOrganization =
  /** A user who is a direct member of the organization. */
  | 'DIRECT_MEMBER'
  /** A user with full administrative access to the organization. */
  | 'OWNER'
  /** A user who is unaffiliated with the organization. */
  | 'UNAFFILIATED';

/** The possible digest algorithms used to sign SAML requests for an identity provider. */
export type SamlDigestAlgorithm =
  /** SHA1 */
  | 'SHA1'
  /** SHA256 */
  | 'SHA256'
  /** SHA384 */
  | 'SHA384'
  /** SHA512 */
  | 'SHA512';

/** The possible signature algorithms used to sign SAML requests for a Identity Provider. */
export type SamlSignatureAlgorithm =
  /** RSA-SHA1 */
  | 'RSA_SHA1'
  /** RSA-SHA256 */
  | 'RSA_SHA256'
  /** RSA-SHA384 */
  | 'RSA_SHA384'
  /** RSA-SHA512 */
  | 'RSA_SHA512';

/** A Saved Reply is text a user can use to reply quickly. */
export type SavedReply = Node & {
  __typename?: 'SavedReply';
  /** The body of the saved reply. */
  body: Scalars['String'];
  /** The saved reply body rendered to HTML. */
  bodyHTML: Scalars['HTML'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  id: Scalars['ID'];
  /** The title of the saved reply. */
  title: Scalars['String'];
  /** The user that saved this reply. */
  user?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
};

/** The connection type for SavedReply. */
export type SavedReplyConnection = {
  __typename?: 'SavedReplyConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<SavedReplyEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<SavedReply>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type SavedReplyEdge = {
  __typename?: 'SavedReplyEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<SavedReply>;
};

/** Ordering options for saved reply connections. */
export type SavedReplyOrder = {
  /** The ordering direction. */
  direction: OrderDirection;
  /** The field to order saved replies by. */
  field: SavedReplyOrderField;
};

/** Properties by which saved reply connections can be ordered. */
export type SavedReplyOrderField =
  /** Order saved reply by when they were updated. */
  | 'UPDATED_AT';

/** The results of a search. */
export type SearchResultItem = App | Discussion | Issue | MarketplaceListing | Organization | PullRequest | Repository | User;

/**
 * A list of results that matched against a search query. Regardless of the number
 * of matches, a maximum of 1,000 results will be available across all types,
 * potentially split across many pages.
 */
export type SearchResultItemConnection = {
  __typename?: 'SearchResultItemConnection';
  /**
   * The total number of pieces of code that matched the search query. Regardless
   * of the total number of matches, a maximum of 1,000 results will be available
   * across all types.
   */
  codeCount: Scalars['Int'];
  /**
   * The total number of discussions that matched the search query. Regardless of
   * the total number of matches, a maximum of 1,000 results will be available
   * across all types.
   */
  discussionCount: Scalars['Int'];
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<SearchResultItemEdge>>>;
  /**
   * The total number of issues that matched the search query. Regardless of the
   * total number of matches, a maximum of 1,000 results will be available across all types.
   */
  issueCount: Scalars['Int'];
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<SearchResultItem>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /**
   * The total number of repositories that matched the search query. Regardless of
   * the total number of matches, a maximum of 1,000 results will be available
   * across all types.
   */
  repositoryCount: Scalars['Int'];
  /**
   * The total number of users that matched the search query. Regardless of the
   * total number of matches, a maximum of 1,000 results will be available across all types.
   */
  userCount: Scalars['Int'];
  /**
   * The total number of wiki pages that matched the search query. Regardless of
   * the total number of matches, a maximum of 1,000 results will be available
   * across all types.
   */
  wikiCount: Scalars['Int'];
};

/** An edge in a connection. */
export type SearchResultItemEdge = {
  __typename?: 'SearchResultItemEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<SearchResultItem>;
  /** Text matches on the result found. */
  textMatches?: Maybe<Array<Maybe<TextMatch>>>;
};

/** Represents the individual results of a search. */
export type SearchType =
  /** Returns matching discussions in repositories. */
  | 'DISCUSSION'
  /** Returns results matching issues in repositories. */
  | 'ISSUE'
  /** Returns results matching repositories. */
  | 'REPOSITORY'
  /** Returns results matching users and organizations on GitHub. */
  | 'USER';

/** A GitHub Security Advisory */
export type SecurityAdvisory = Node & {
  __typename?: 'SecurityAdvisory';
  /** The classification of the advisory */
  classification: SecurityAdvisoryClassification;
  /** The CVSS associated with this advisory */
  cvss: Cvss;
  /** CWEs associated with this Advisory */
  cwes: CweConnection;
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** This is a long plaintext description of the advisory */
  description: Scalars['String'];
  /** The GitHub Security Advisory ID */
  ghsaId: Scalars['String'];
  id: Scalars['ID'];
  /** A list of identifiers for this advisory */
  identifiers: Array<SecurityAdvisoryIdentifier>;
  /** The permalink for the advisory's dependabot alerts page */
  notificationsPermalink?: Maybe<Scalars['URI']>;
  /** The organization that originated the advisory */
  origin: Scalars['String'];
  /** The permalink for the advisory */
  permalink?: Maybe<Scalars['URI']>;
  /** When the advisory was published */
  publishedAt: Scalars['DateTime'];
  /** A list of references for this advisory */
  references: Array<SecurityAdvisoryReference>;
  /** The severity of the advisory */
  severity: SecurityAdvisorySeverity;
  /** A short plaintext summary of the advisory */
  summary: Scalars['String'];
  /** When the advisory was last updated */
  updatedAt: Scalars['DateTime'];
  /** Vulnerabilities associated with this Advisory */
  vulnerabilities: SecurityVulnerabilityConnection;
  /** When the advisory was withdrawn, if it has been withdrawn */
  withdrawnAt?: Maybe<Scalars['DateTime']>;
};


/** A GitHub Security Advisory */
export type SecurityAdvisoryCwesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A GitHub Security Advisory */
export type SecurityAdvisoryVulnerabilitiesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  classifications?: InputMaybe<Array<SecurityAdvisoryClassification>>;
  ecosystem?: InputMaybe<SecurityAdvisoryEcosystem>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<SecurityVulnerabilityOrder>;
  package?: InputMaybe<Scalars['String']>;
  severities?: InputMaybe<Array<SecurityAdvisorySeverity>>;
};

/** Classification of the advisory. */
export type SecurityAdvisoryClassification =
  /** Classification of general advisories. */
  | 'GENERAL'
  /** Classification of malware advisories. */
  | 'MALWARE';

/** The connection type for SecurityAdvisory. */
export type SecurityAdvisoryConnection = {
  __typename?: 'SecurityAdvisoryConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<SecurityAdvisoryEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<SecurityAdvisory>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** The possible ecosystems of a security vulnerability's package. */
export type SecurityAdvisoryEcosystem =
  /** GitHub Actions */
  | 'ACTIONS'
  /** PHP packages hosted at packagist.org */
  | 'COMPOSER'
  /** Erlang/Elixir packages hosted at hex.pm */
  | 'ERLANG'
  /** Go modules */
  | 'GO'
  /** Java artifacts hosted at the Maven central repository */
  | 'MAVEN'
  /** JavaScript packages hosted at npmjs.com */
  | 'NPM'
  /** .NET packages hosted at the NuGet Gallery */
  | 'NUGET'
  /** Python packages hosted at PyPI.org */
  | 'PIP'
  /** Dart packages hosted at pub.dev */
  | 'PUB'
  /** Ruby gems hosted at RubyGems.org */
  | 'RUBYGEMS'
  /** Rust crates */
  | 'RUST';

/** An edge in a connection. */
export type SecurityAdvisoryEdge = {
  __typename?: 'SecurityAdvisoryEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<SecurityAdvisory>;
};

/** A GitHub Security Advisory Identifier */
export type SecurityAdvisoryIdentifier = {
  __typename?: 'SecurityAdvisoryIdentifier';
  /** The identifier type, e.g. GHSA, CVE */
  type: Scalars['String'];
  /** The identifier */
  value: Scalars['String'];
};

/** An advisory identifier to filter results on. */
export type SecurityAdvisoryIdentifierFilter = {
  /** The identifier type. */
  type: SecurityAdvisoryIdentifierType;
  /** The identifier string. Supports exact or partial matching. */
  value: Scalars['String'];
};

/** Identifier formats available for advisories. */
export type SecurityAdvisoryIdentifierType =
  /** Common Vulnerabilities and Exposures Identifier. */
  | 'CVE'
  /** GitHub Security Advisory ID. */
  | 'GHSA';

/** Ordering options for security advisory connections */
export type SecurityAdvisoryOrder = {
  /** The ordering direction. */
  direction: OrderDirection;
  /** The field to order security advisories by. */
  field: SecurityAdvisoryOrderField;
};

/** Properties by which security advisory connections can be ordered. */
export type SecurityAdvisoryOrderField =
  /** Order advisories by publication time */
  | 'PUBLISHED_AT'
  /** Order advisories by update time */
  | 'UPDATED_AT';

/** An individual package */
export type SecurityAdvisoryPackage = {
  __typename?: 'SecurityAdvisoryPackage';
  /** The ecosystem the package belongs to, e.g. RUBYGEMS, NPM */
  ecosystem: SecurityAdvisoryEcosystem;
  /** The package name */
  name: Scalars['String'];
};

/** An individual package version */
export type SecurityAdvisoryPackageVersion = {
  __typename?: 'SecurityAdvisoryPackageVersion';
  /** The package name or version */
  identifier: Scalars['String'];
};

/** A GitHub Security Advisory Reference */
export type SecurityAdvisoryReference = {
  __typename?: 'SecurityAdvisoryReference';
  /** A publicly accessible reference */
  url: Scalars['URI'];
};

/** Severity of the vulnerability. */
export type SecurityAdvisorySeverity =
  /** Critical. */
  | 'CRITICAL'
  /** High. */
  | 'HIGH'
  /** Low. */
  | 'LOW'
  /** Moderate. */
  | 'MODERATE';

/** An individual vulnerability within an Advisory */
export type SecurityVulnerability = {
  __typename?: 'SecurityVulnerability';
  /** The Advisory associated with this Vulnerability */
  advisory: SecurityAdvisory;
  /** The first version containing a fix for the vulnerability */
  firstPatchedVersion?: Maybe<SecurityAdvisoryPackageVersion>;
  /** A description of the vulnerable package */
  package: SecurityAdvisoryPackage;
  /** The severity of the vulnerability within this package */
  severity: SecurityAdvisorySeverity;
  /** When the vulnerability was last updated */
  updatedAt: Scalars['DateTime'];
  /**
   * A string that describes the vulnerable package versions.
   * This string follows a basic syntax with a few forms.
   * + `= 0.2.0` denotes a single vulnerable version.
   * + `<= 1.0.8` denotes a version range up to and including the specified version
   * + `< 0.1.11` denotes a version range up to, but excluding, the specified version
   * + `>= 4.3.0, < 4.3.5` denotes a version range with a known minimum and maximum version.
   * + `>= 0.0.1` denotes a version range with a known minimum, but no known maximum
   */
  vulnerableVersionRange: Scalars['String'];
};

/** The connection type for SecurityVulnerability. */
export type SecurityVulnerabilityConnection = {
  __typename?: 'SecurityVulnerabilityConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<SecurityVulnerabilityEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<SecurityVulnerability>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type SecurityVulnerabilityEdge = {
  __typename?: 'SecurityVulnerabilityEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<SecurityVulnerability>;
};

/** Ordering options for security vulnerability connections */
export type SecurityVulnerabilityOrder = {
  /** The ordering direction. */
  direction: OrderDirection;
  /** The field to order security vulnerabilities by. */
  field: SecurityVulnerabilityOrderField;
};

/** Properties by which security vulnerability connections can be ordered. */
export type SecurityVulnerabilityOrderField =
  /** Order vulnerability by update time */
  | 'UPDATED_AT';

/** Autogenerated input type of SetEnterpriseIdentityProvider */
export type SetEnterpriseIdentityProviderInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The digest algorithm used to sign SAML requests for the identity provider. */
  digestMethod: SamlDigestAlgorithm;
  /** The ID of the enterprise on which to set an identity provider. */
  enterpriseId: Scalars['ID'];
  /** The x509 certificate used by the identity provider to sign assertions and responses. */
  idpCertificate: Scalars['String'];
  /** The Issuer Entity ID for the SAML identity provider */
  issuer?: InputMaybe<Scalars['String']>;
  /** The signature algorithm used to sign SAML requests for the identity provider. */
  signatureMethod: SamlSignatureAlgorithm;
  /** The URL endpoint for the identity provider's SAML SSO. */
  ssoUrl: Scalars['URI'];
};

/** Autogenerated return type of SetEnterpriseIdentityProvider */
export type SetEnterpriseIdentityProviderPayload = {
  __typename?: 'SetEnterpriseIdentityProviderPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The identity provider for the enterprise. */
  identityProvider?: Maybe<EnterpriseIdentityProvider>;
};

/** Autogenerated input type of SetOrganizationInteractionLimit */
export type SetOrganizationInteractionLimitInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** When this limit should expire. */
  expiry?: InputMaybe<RepositoryInteractionLimitExpiry>;
  /** The limit to set. */
  limit: RepositoryInteractionLimit;
  /** The ID of the organization to set a limit for. */
  organizationId: Scalars['ID'];
};

/** Autogenerated return type of SetOrganizationInteractionLimit */
export type SetOrganizationInteractionLimitPayload = {
  __typename?: 'SetOrganizationInteractionLimitPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The organization that the interaction limit was set for. */
  organization?: Maybe<Organization>;
};

/** Autogenerated input type of SetRepositoryInteractionLimit */
export type SetRepositoryInteractionLimitInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** When this limit should expire. */
  expiry?: InputMaybe<RepositoryInteractionLimitExpiry>;
  /** The limit to set. */
  limit: RepositoryInteractionLimit;
  /** The ID of the repository to set a limit for. */
  repositoryId: Scalars['ID'];
};

/** Autogenerated return type of SetRepositoryInteractionLimit */
export type SetRepositoryInteractionLimitPayload = {
  __typename?: 'SetRepositoryInteractionLimitPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The repository that the interaction limit was set for. */
  repository?: Maybe<Repository>;
};

/** Autogenerated input type of SetUserInteractionLimit */
export type SetUserInteractionLimitInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** When this limit should expire. */
  expiry?: InputMaybe<RepositoryInteractionLimitExpiry>;
  /** The limit to set. */
  limit: RepositoryInteractionLimit;
  /** The ID of the user to set a limit for. */
  userId: Scalars['ID'];
};

/** Autogenerated return type of SetUserInteractionLimit */
export type SetUserInteractionLimitPayload = {
  __typename?: 'SetUserInteractionLimitPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The user that the interaction limit was set for. */
  user?: Maybe<User>;
};

/** Represents an S/MIME signature on a Commit or Tag. */
export type SmimeSignature = GitSignature & {
  __typename?: 'SmimeSignature';
  /** Email used to sign this object. */
  email: Scalars['String'];
  /** True if the signature is valid and verified by GitHub. */
  isValid: Scalars['Boolean'];
  /** Payload for GPG signing object. Raw ODB object without the signature header. */
  payload: Scalars['String'];
  /** ASCII-armored signature header from object. */
  signature: Scalars['String'];
  /** GitHub user corresponding to the email signing this commit. */
  signer?: Maybe<User>;
  /**
   * The state of this signature. `VALID` if signature is valid and verified by
   * GitHub, otherwise represents reason why signature is considered invalid.
   */
  state: GitSignatureState;
  /** True if the signature was made with GitHub's signing key. */
  wasSignedByGitHub: Scalars['Boolean'];
};

/** Social media profile associated with a user. */
export type SocialAccount = {
  __typename?: 'SocialAccount';
  /** Name of the social media account as it appears on the profile. */
  displayName: Scalars['String'];
  /** Software or company that hosts the social media account. */
  provider: SocialAccountProvider;
  /** URL of the social media account. */
  url: Scalars['URI'];
};

/** The connection type for SocialAccount. */
export type SocialAccountConnection = {
  __typename?: 'SocialAccountConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<SocialAccountEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<SocialAccount>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type SocialAccountEdge = {
  __typename?: 'SocialAccountEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<SocialAccount>;
};

/** Software or company that hosts social media accounts. */
export type SocialAccountProvider =
  /** Social media and networking website. */
  | 'FACEBOOK'
  /** Catch-all for social media providers that do not yet have specific handling. */
  | 'GENERIC'
  /** Fork of Mastodon with a greater focus on local posting. */
  | 'HOMETOWN'
  /** Social media website with a focus on photo and video sharing. */
  | 'INSTAGRAM'
  /** Professional networking website. */
  | 'LINKEDIN'
  /** Open-source federated microblogging service. */
  | 'MASTODON'
  /** Social news aggregation and discussion website. */
  | 'REDDIT'
  /** Live-streaming service. */
  | 'TWITCH'
  /** Microblogging website. */
  | 'TWITTER'
  /** Online video platform. */
  | 'YOUTUBE';

/** Entities that can sponsor others via GitHub Sponsors */
export type Sponsor = Organization | User;

/** The connection type for Sponsor. */
export type SponsorConnection = {
  __typename?: 'SponsorConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<SponsorEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<Sponsor>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** Represents a user or organization who is sponsoring someone in GitHub Sponsors. */
export type SponsorEdge = {
  __typename?: 'SponsorEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<Sponsor>;
};

/** Ordering options for connections to get sponsor entities for GitHub Sponsors. */
export type SponsorOrder = {
  /** The ordering direction. */
  direction: OrderDirection;
  /** The field to order sponsor entities by. */
  field: SponsorOrderField;
};

/** Properties by which sponsor connections can be ordered. */
export type SponsorOrderField =
  /** Order sponsorable entities by login (username). */
  | 'LOGIN'
  /** Order sponsors by their relevance to the viewer. */
  | 'RELEVANCE';

/** Entities that can sponsor or be sponsored through GitHub Sponsors. */
export type Sponsorable = {
  /** The estimated next GitHub Sponsors payout for this user/organization in cents (USD). */
  estimatedNextSponsorsPayoutInCents: Scalars['Int'];
  /** True if this user/organization has a GitHub Sponsors listing. */
  hasSponsorsListing: Scalars['Boolean'];
  /** Whether the given account is sponsoring this user/organization. */
  isSponsoredBy: Scalars['Boolean'];
  /** True if the viewer is sponsored by this user/organization. */
  isSponsoringViewer: Scalars['Boolean'];
  /** The estimated monthly GitHub Sponsors income for this user/organization in cents (USD). */
  monthlyEstimatedSponsorsIncomeInCents: Scalars['Int'];
  /** List of users and organizations this entity is sponsoring. */
  sponsoring: SponsorConnection;
  /** List of sponsors for this user or organization. */
  sponsors: SponsorConnection;
  /** Events involving this sponsorable, such as new sponsorships. */
  sponsorsActivities: SponsorsActivityConnection;
  /** The GitHub Sponsors listing for this user or organization. */
  sponsorsListing?: Maybe<SponsorsListing>;
  /** The sponsorship from the viewer to this user/organization; that is, the sponsorship where you're the sponsor. */
  sponsorshipForViewerAsSponsor?: Maybe<Sponsorship>;
  /** The sponsorship from this user/organization to the viewer; that is, the sponsorship you're receiving. */
  sponsorshipForViewerAsSponsorable?: Maybe<Sponsorship>;
  /** List of sponsorship updates sent from this sponsorable to sponsors. */
  sponsorshipNewsletters: SponsorshipNewsletterConnection;
  /** The sponsorships where this user or organization is the maintainer receiving the funds. */
  sponsorshipsAsMaintainer: SponsorshipConnection;
  /** The sponsorships where this user or organization is the funder. */
  sponsorshipsAsSponsor: SponsorshipConnection;
  /**
   * The amount in United States cents (e.g., 500 = $5.00 USD) that this entity has
   * spent on GitHub to fund sponsorships. Only returns a value when viewed by the
   * user themselves or by a user who can manage sponsorships for the requested organization.
   */
  totalSponsorshipAmountAsSponsorInCents?: Maybe<Scalars['Int']>;
  /** Whether or not the viewer is able to sponsor this user/organization. */
  viewerCanSponsor: Scalars['Boolean'];
  /** True if the viewer is sponsoring this user/organization. */
  viewerIsSponsoring: Scalars['Boolean'];
};


/** Entities that can sponsor or be sponsored through GitHub Sponsors. */
export type SponsorableIsSponsoredByArgs = {
  accountLogin: Scalars['String'];
};


/** Entities that can sponsor or be sponsored through GitHub Sponsors. */
export type SponsorableSponsoringArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<SponsorOrder>;
};


/** Entities that can sponsor or be sponsored through GitHub Sponsors. */
export type SponsorableSponsorsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<SponsorOrder>;
  tierId?: InputMaybe<Scalars['ID']>;
};


/** Entities that can sponsor or be sponsored through GitHub Sponsors. */
export type SponsorableSponsorsActivitiesArgs = {
  actions?: InputMaybe<Array<SponsorsActivityAction>>;
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  includeAsSponsor?: InputMaybe<Scalars['Boolean']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<SponsorsActivityOrder>;
  period?: InputMaybe<SponsorsActivityPeriod>;
  since?: InputMaybe<Scalars['DateTime']>;
  until?: InputMaybe<Scalars['DateTime']>;
};


/** Entities that can sponsor or be sponsored through GitHub Sponsors. */
export type SponsorableSponsorshipForViewerAsSponsorArgs = {
  activeOnly?: InputMaybe<Scalars['Boolean']>;
};


/** Entities that can sponsor or be sponsored through GitHub Sponsors. */
export type SponsorableSponsorshipForViewerAsSponsorableArgs = {
  activeOnly?: InputMaybe<Scalars['Boolean']>;
};


/** Entities that can sponsor or be sponsored through GitHub Sponsors. */
export type SponsorableSponsorshipNewslettersArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<SponsorshipNewsletterOrder>;
};


/** Entities that can sponsor or be sponsored through GitHub Sponsors. */
export type SponsorableSponsorshipsAsMaintainerArgs = {
  activeOnly?: InputMaybe<Scalars['Boolean']>;
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  includePrivate?: InputMaybe<Scalars['Boolean']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<SponsorshipOrder>;
};


/** Entities that can sponsor or be sponsored through GitHub Sponsors. */
export type SponsorableSponsorshipsAsSponsorArgs = {
  activeOnly?: InputMaybe<Scalars['Boolean']>;
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  maintainerLogins?: InputMaybe<Array<Scalars['String']>>;
  orderBy?: InputMaybe<SponsorshipOrder>;
};


/** Entities that can sponsor or be sponsored through GitHub Sponsors. */
export type SponsorableTotalSponsorshipAmountAsSponsorInCentsArgs = {
  since?: InputMaybe<Scalars['DateTime']>;
  sponsorableLogins?: InputMaybe<Array<Scalars['String']>>;
  until?: InputMaybe<Scalars['DateTime']>;
};

/** Entities that can be sponsored via GitHub Sponsors */
export type SponsorableItem = Organization | User;

/** The connection type for SponsorableItem. */
export type SponsorableItemConnection = {
  __typename?: 'SponsorableItemConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<SponsorableItemEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<SponsorableItem>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type SponsorableItemEdge = {
  __typename?: 'SponsorableItemEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<SponsorableItem>;
};

/** Ordering options for connections to get sponsorable entities for GitHub Sponsors. */
export type SponsorableOrder = {
  /** The ordering direction. */
  direction: OrderDirection;
  /** The field to order sponsorable entities by. */
  field: SponsorableOrderField;
};

/** Properties by which sponsorable connections can be ordered. */
export type SponsorableOrderField =
  /** Order sponsorable entities by login (username). */
  | 'LOGIN';

/** An event related to sponsorship activity. */
export type SponsorsActivity = Node & {
  __typename?: 'SponsorsActivity';
  /** What action this activity indicates took place. */
  action: SponsorsActivityAction;
  id: Scalars['ID'];
  /** The tier that the sponsorship used to use, for tier change events. */
  previousSponsorsTier?: Maybe<SponsorsTier>;
  /** The user or organization who triggered this activity and was/is sponsoring the sponsorable. */
  sponsor?: Maybe<Sponsor>;
  /** The user or organization that is being sponsored, the maintainer. */
  sponsorable: Organization | User;
  /** The associated sponsorship tier. */
  sponsorsTier?: Maybe<SponsorsTier>;
  /** The timestamp of this event. */
  timestamp?: Maybe<Scalars['DateTime']>;
};

/** The possible actions that GitHub Sponsors activities can represent. */
export type SponsorsActivityAction =
  /** The activity was cancelling a sponsorship. */
  | 'CANCELLED_SPONSORSHIP'
  /** The activity was starting a sponsorship. */
  | 'NEW_SPONSORSHIP'
  /** The activity was scheduling a downgrade or cancellation. */
  | 'PENDING_CHANGE'
  /** The activity was funds being refunded to the sponsor or GitHub. */
  | 'REFUND'
  /** The activity was disabling matching for a previously matched sponsorship. */
  | 'SPONSOR_MATCH_DISABLED'
  /** The activity was changing the sponsorship tier, either directly by the sponsor or by a scheduled/pending change. */
  | 'TIER_CHANGE';

/** The connection type for SponsorsActivity. */
export type SponsorsActivityConnection = {
  __typename?: 'SponsorsActivityConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<SponsorsActivityEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<SponsorsActivity>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type SponsorsActivityEdge = {
  __typename?: 'SponsorsActivityEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<SponsorsActivity>;
};

/** Ordering options for GitHub Sponsors activity connections. */
export type SponsorsActivityOrder = {
  /** The ordering direction. */
  direction: OrderDirection;
  /** The field to order activity by. */
  field: SponsorsActivityOrderField;
};

/** Properties by which GitHub Sponsors activity connections can be ordered. */
export type SponsorsActivityOrderField =
  /** Order activities by when they happened. */
  | 'TIMESTAMP';

/** The possible time periods for which Sponsors activities can be requested. */
export type SponsorsActivityPeriod =
  /** Don't restrict the activity to any date range, include all activity. */
  | 'ALL'
  /** The previous calendar day. */
  | 'DAY'
  /** The previous thirty days. */
  | 'MONTH'
  /** The previous seven days. */
  | 'WEEK';

/** Represents countries or regions for billing and residence for a GitHub Sponsors profile. */
export type SponsorsCountryOrRegionCode =
  /** Andorra */
  | 'AD'
  /** United Arab Emirates */
  | 'AE'
  /** Afghanistan */
  | 'AF'
  /** Antigua and Barbuda */
  | 'AG'
  /** Anguilla */
  | 'AI'
  /** Albania */
  | 'AL'
  /** Armenia */
  | 'AM'
  /** Angola */
  | 'AO'
  /** Antarctica */
  | 'AQ'
  /** Argentina */
  | 'AR'
  /** American Samoa */
  | 'AS'
  /** Austria */
  | 'AT'
  /** Australia */
  | 'AU'
  /** Aruba */
  | 'AW'
  /** Åland */
  | 'AX'
  /** Azerbaijan */
  | 'AZ'
  /** Bosnia and Herzegovina */
  | 'BA'
  /** Barbados */
  | 'BB'
  /** Bangladesh */
  | 'BD'
  /** Belgium */
  | 'BE'
  /** Burkina Faso */
  | 'BF'
  /** Bulgaria */
  | 'BG'
  /** Bahrain */
  | 'BH'
  /** Burundi */
  | 'BI'
  /** Benin */
  | 'BJ'
  /** Saint Barthélemy */
  | 'BL'
  /** Bermuda */
  | 'BM'
  /** Brunei Darussalam */
  | 'BN'
  /** Bolivia */
  | 'BO'
  /** Bonaire, Sint Eustatius and Saba */
  | 'BQ'
  /** Brazil */
  | 'BR'
  /** Bahamas */
  | 'BS'
  /** Bhutan */
  | 'BT'
  /** Bouvet Island */
  | 'BV'
  /** Botswana */
  | 'BW'
  /** Belarus */
  | 'BY'
  /** Belize */
  | 'BZ'
  /** Canada */
  | 'CA'
  /** Cocos (Keeling) Islands */
  | 'CC'
  /** Congo (Kinshasa) */
  | 'CD'
  /** Central African Republic */
  | 'CF'
  /** Congo (Brazzaville) */
  | 'CG'
  /** Switzerland */
  | 'CH'
  /** Côte d'Ivoire */
  | 'CI'
  /** Cook Islands */
  | 'CK'
  /** Chile */
  | 'CL'
  /** Cameroon */
  | 'CM'
  /** China */
  | 'CN'
  /** Colombia */
  | 'CO'
  /** Costa Rica */
  | 'CR'
  /** Cape Verde */
  | 'CV'
  /** Curaçao */
  | 'CW'
  /** Christmas Island */
  | 'CX'
  /** Cyprus */
  | 'CY'
  /** Czech Republic */
  | 'CZ'
  /** Germany */
  | 'DE'
  /** Djibouti */
  | 'DJ'
  /** Denmark */
  | 'DK'
  /** Dominica */
  | 'DM'
  /** Dominican Republic */
  | 'DO'
  /** Algeria */
  | 'DZ'
  /** Ecuador */
  | 'EC'
  /** Estonia */
  | 'EE'
  /** Egypt */
  | 'EG'
  /** Western Sahara */
  | 'EH'
  /** Eritrea */
  | 'ER'
  /** Spain */
  | 'ES'
  /** Ethiopia */
  | 'ET'
  /** Finland */
  | 'FI'
  /** Fiji */
  | 'FJ'
  /** Falkland Islands */
  | 'FK'
  /** Micronesia */
  | 'FM'
  /** Faroe Islands */
  | 'FO'
  /** France */
  | 'FR'
  /** Gabon */
  | 'GA'
  /** United Kingdom */
  | 'GB'
  /** Grenada */
  | 'GD'
  /** Georgia */
  | 'GE'
  /** French Guiana */
  | 'GF'
  /** Guernsey */
  | 'GG'
  /** Ghana */
  | 'GH'
  /** Gibraltar */
  | 'GI'
  /** Greenland */
  | 'GL'
  /** Gambia */
  | 'GM'
  /** Guinea */
  | 'GN'
  /** Guadeloupe */
  | 'GP'
  /** Equatorial Guinea */
  | 'GQ'
  /** Greece */
  | 'GR'
  /** South Georgia and South Sandwich Islands */
  | 'GS'
  /** Guatemala */
  | 'GT'
  /** Guam */
  | 'GU'
  /** Guinea-Bissau */
  | 'GW'
  /** Guyana */
  | 'GY'
  /** Hong Kong */
  | 'HK'
  /** Heard and McDonald Islands */
  | 'HM'
  /** Honduras */
  | 'HN'
  /** Croatia */
  | 'HR'
  /** Haiti */
  | 'HT'
  /** Hungary */
  | 'HU'
  /** Indonesia */
  | 'ID'
  /** Ireland */
  | 'IE'
  /** Israel */
  | 'IL'
  /** Isle of Man */
  | 'IM'
  /** India */
  | 'IN'
  /** British Indian Ocean Territory */
  | 'IO'
  /** Iraq */
  | 'IQ'
  /** Iran */
  | 'IR'
  /** Iceland */
  | 'IS'
  /** Italy */
  | 'IT'
  /** Jersey */
  | 'JE'
  /** Jamaica */
  | 'JM'
  /** Jordan */
  | 'JO'
  /** Japan */
  | 'JP'
  /** Kenya */
  | 'KE'
  /** Kyrgyzstan */
  | 'KG'
  /** Cambodia */
  | 'KH'
  /** Kiribati */
  | 'KI'
  /** Comoros */
  | 'KM'
  /** Saint Kitts and Nevis */
  | 'KN'
  /** Korea, South */
  | 'KR'
  /** Kuwait */
  | 'KW'
  /** Cayman Islands */
  | 'KY'
  /** Kazakhstan */
  | 'KZ'
  /** Laos */
  | 'LA'
  /** Lebanon */
  | 'LB'
  /** Saint Lucia */
  | 'LC'
  /** Liechtenstein */
  | 'LI'
  /** Sri Lanka */
  | 'LK'
  /** Liberia */
  | 'LR'
  /** Lesotho */
  | 'LS'
  /** Lithuania */
  | 'LT'
  /** Luxembourg */
  | 'LU'
  /** Latvia */
  | 'LV'
  /** Libya */
  | 'LY'
  /** Morocco */
  | 'MA'
  /** Monaco */
  | 'MC'
  /** Moldova */
  | 'MD'
  /** Montenegro */
  | 'ME'
  /** Saint Martin (French part) */
  | 'MF'
  /** Madagascar */
  | 'MG'
  /** Marshall Islands */
  | 'MH'
  /** Macedonia */
  | 'MK'
  /** Mali */
  | 'ML'
  /** Myanmar */
  | 'MM'
  /** Mongolia */
  | 'MN'
  /** Macau */
  | 'MO'
  /** Northern Mariana Islands */
  | 'MP'
  /** Martinique */
  | 'MQ'
  /** Mauritania */
  | 'MR'
  /** Montserrat */
  | 'MS'
  /** Malta */
  | 'MT'
  /** Mauritius */
  | 'MU'
  /** Maldives */
  | 'MV'
  /** Malawi */
  | 'MW'
  /** Mexico */
  | 'MX'
  /** Malaysia */
  | 'MY'
  /** Mozambique */
  | 'MZ'
  /** Namibia */
  | 'NA'
  /** New Caledonia */
  | 'NC'
  /** Niger */
  | 'NE'
  /** Norfolk Island */
  | 'NF'
  /** Nigeria */
  | 'NG'
  /** Nicaragua */
  | 'NI'
  /** Netherlands */
  | 'NL'
  /** Norway */
  | 'NO'
  /** Nepal */
  | 'NP'
  /** Nauru */
  | 'NR'
  /** Niue */
  | 'NU'
  /** New Zealand */
  | 'NZ'
  /** Oman */
  | 'OM'
  /** Panama */
  | 'PA'
  /** Peru */
  | 'PE'
  /** French Polynesia */
  | 'PF'
  /** Papua New Guinea */
  | 'PG'
  /** Philippines */
  | 'PH'
  /** Pakistan */
  | 'PK'
  /** Poland */
  | 'PL'
  /** Saint Pierre and Miquelon */
  | 'PM'
  /** Pitcairn */
  | 'PN'
  /** Puerto Rico */
  | 'PR'
  /** Palestine */
  | 'PS'
  /** Portugal */
  | 'PT'
  /** Palau */
  | 'PW'
  /** Paraguay */
  | 'PY'
  /** Qatar */
  | 'QA'
  /** Reunion */
  | 'RE'
  /** Romania */
  | 'RO'
  /** Serbia */
  | 'RS'
  /** Russian Federation */
  | 'RU'
  /** Rwanda */
  | 'RW'
  /** Saudi Arabia */
  | 'SA'
  /** Solomon Islands */
  | 'SB'
  /** Seychelles */
  | 'SC'
  /** Sudan */
  | 'SD'
  /** Sweden */
  | 'SE'
  /** Singapore */
  | 'SG'
  /** Saint Helena */
  | 'SH'
  /** Slovenia */
  | 'SI'
  /** Svalbard and Jan Mayen Islands */
  | 'SJ'
  /** Slovakia */
  | 'SK'
  /** Sierra Leone */
  | 'SL'
  /** San Marino */
  | 'SM'
  /** Senegal */
  | 'SN'
  /** Somalia */
  | 'SO'
  /** Suriname */
  | 'SR'
  /** South Sudan */
  | 'SS'
  /** Sao Tome and Principe */
  | 'ST'
  /** El Salvador */
  | 'SV'
  /** Sint Maarten (Dutch part) */
  | 'SX'
  /** Swaziland */
  | 'SZ'
  /** Turks and Caicos Islands */
  | 'TC'
  /** Chad */
  | 'TD'
  /** French Southern Lands */
  | 'TF'
  /** Togo */
  | 'TG'
  /** Thailand */
  | 'TH'
  /** Tajikistan */
  | 'TJ'
  /** Tokelau */
  | 'TK'
  /** Timor-Leste */
  | 'TL'
  /** Turkmenistan */
  | 'TM'
  /** Tunisia */
  | 'TN'
  /** Tonga */
  | 'TO'
  /** Turkey */
  | 'TR'
  /** Trinidad and Tobago */
  | 'TT'
  /** Tuvalu */
  | 'TV'
  /** Taiwan */
  | 'TW'
  /** Tanzania */
  | 'TZ'
  /** Ukraine */
  | 'UA'
  /** Uganda */
  | 'UG'
  /** United States Minor Outlying Islands */
  | 'UM'
  /** United States of America */
  | 'US'
  /** Uruguay */
  | 'UY'
  /** Uzbekistan */
  | 'UZ'
  /** Vatican City */
  | 'VA'
  /** Saint Vincent and the Grenadines */
  | 'VC'
  /** Venezuela */
  | 'VE'
  /** Virgin Islands, British */
  | 'VG'
  /** Virgin Islands, U.S. */
  | 'VI'
  /** Vietnam */
  | 'VN'
  /** Vanuatu */
  | 'VU'
  /** Wallis and Futuna Islands */
  | 'WF'
  /** Samoa */
  | 'WS'
  /** Yemen */
  | 'YE'
  /** Mayotte */
  | 'YT'
  /** South Africa */
  | 'ZA'
  /** Zambia */
  | 'ZM'
  /** Zimbabwe */
  | 'ZW';

/** A goal associated with a GitHub Sponsors listing, representing a target the sponsored maintainer would like to attain. */
export type SponsorsGoal = {
  __typename?: 'SponsorsGoal';
  /** A description of the goal from the maintainer. */
  description?: Maybe<Scalars['String']>;
  /** What the objective of this goal is. */
  kind: SponsorsGoalKind;
  /** The percentage representing how complete this goal is, between 0-100. */
  percentComplete: Scalars['Int'];
  /**
   * What the goal amount is. Represents an amount in USD for monthly sponsorship
   * amount goals. Represents a count of unique sponsors for total sponsors count goals.
   */
  targetValue: Scalars['Int'];
  /** A brief summary of the kind and target value of this goal. */
  title: Scalars['String'];
};

/** The different kinds of goals a GitHub Sponsors member can have. */
export type SponsorsGoalKind =
  /** The goal is about getting a certain amount in USD from sponsorships each month. */
  | 'MONTHLY_SPONSORSHIP_AMOUNT'
  /** The goal is about reaching a certain number of sponsors. */
  | 'TOTAL_SPONSORS_COUNT';

/** A GitHub Sponsors listing. */
export type SponsorsListing = Node & {
  __typename?: 'SponsorsListing';
  /** The current goal the maintainer is trying to reach with GitHub Sponsors, if any. */
  activeGoal?: Maybe<SponsorsGoal>;
  /**
   * The Stripe Connect account currently in use for payouts for this Sponsors
   * listing, if any. Will only return a value when queried by the maintainer
   * themselves, or by an admin of the sponsorable organization.
   */
  activeStripeConnectAccount?: Maybe<StripeConnectAccount>;
  /**
   * The name of the country or region with the maintainer's bank account or fiscal
   * host. Will only return a value when queried by the maintainer themselves, or
   * by an admin of the sponsorable organization.
   */
  billingCountryOrRegion?: Maybe<Scalars['String']>;
  /**
   * The email address used by GitHub to contact the sponsorable about their GitHub
   * Sponsors profile. Will only return a value when queried by the maintainer
   * themselves, or by an admin of the sponsorable organization.
   */
  contactEmailAddress?: Maybe<Scalars['String']>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** The HTTP path for the Sponsors dashboard for this Sponsors listing. */
  dashboardResourcePath: Scalars['URI'];
  /** The HTTP URL for the Sponsors dashboard for this Sponsors listing. */
  dashboardUrl: Scalars['URI'];
  /** The records featured on the GitHub Sponsors profile. */
  featuredItems: Array<SponsorsListingFeaturedItem>;
  /**
   * The fiscal host used for payments, if any. Will only return a value when
   * queried by the maintainer themselves, or by an admin of the sponsorable organization.
   */
  fiscalHost?: Maybe<Organization>;
  /** The full description of the listing. */
  fullDescription: Scalars['String'];
  /** The full description of the listing rendered to HTML. */
  fullDescriptionHTML: Scalars['HTML'];
  id: Scalars['ID'];
  /** Whether this listing is publicly visible. */
  isPublic: Scalars['Boolean'];
  /** The listing's full name. */
  name: Scalars['String'];
  /** A future date on which this listing is eligible to receive a payout. */
  nextPayoutDate?: Maybe<Scalars['Date']>;
  /**
   * The name of the country or region where the maintainer resides. Will only
   * return a value when queried by the maintainer themselves, or by an admin of
   * the sponsorable organization.
   */
  residenceCountryOrRegion?: Maybe<Scalars['String']>;
  /** The HTTP path for this Sponsors listing. */
  resourcePath: Scalars['URI'];
  /** The short description of the listing. */
  shortDescription: Scalars['String'];
  /** The short name of the listing. */
  slug: Scalars['String'];
  /** The entity this listing represents who can be sponsored on GitHub Sponsors. */
  sponsorable: Organization | User;
  /** The tiers for this GitHub Sponsors profile. */
  tiers?: Maybe<SponsorsTierConnection>;
  /** The HTTP URL for this Sponsors listing. */
  url: Scalars['URI'];
};


/** A GitHub Sponsors listing. */
export type SponsorsListingFeaturedItemsArgs = {
  featureableTypes?: InputMaybe<Array<SponsorsListingFeaturedItemFeatureableType>>;
};


/** A GitHub Sponsors listing. */
export type SponsorsListingTiersArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  includeUnpublished?: InputMaybe<Scalars['Boolean']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<SponsorsTierOrder>;
};

/** A record that can be featured on a GitHub Sponsors profile. */
export type SponsorsListingFeatureableItem = Repository | User;

/** A record that is promoted on a GitHub Sponsors profile. */
export type SponsorsListingFeaturedItem = Node & {
  __typename?: 'SponsorsListingFeaturedItem';
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /**
   * Will either be a description from the sponsorable maintainer about why they
   * featured this item, or the item's description itself, such as a user's bio
   * from their GitHub profile page.
   */
  description?: Maybe<Scalars['String']>;
  /** The record that is featured on the GitHub Sponsors profile. */
  featureable: SponsorsListingFeatureableItem;
  id: Scalars['ID'];
  /**
   * The position of this featured item on the GitHub Sponsors profile with a lower
   * position indicating higher precedence. Starts at 1.
   */
  position: Scalars['Int'];
  /** The GitHub Sponsors profile that features this record. */
  sponsorsListing: SponsorsListing;
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
};

/** The different kinds of records that can be featured on a GitHub Sponsors profile page. */
export type SponsorsListingFeaturedItemFeatureableType =
  /** A repository owned by the user or organization with the GitHub Sponsors profile. */
  | 'REPOSITORY'
  /** A user who belongs to the organization with the GitHub Sponsors profile. */
  | 'USER';

/** A GitHub Sponsors tier associated with a GitHub Sponsors listing. */
export type SponsorsTier = Node & {
  __typename?: 'SponsorsTier';
  /** SponsorsTier information only visible to users that can administer the associated Sponsors listing. */
  adminInfo?: Maybe<SponsorsTierAdminInfo>;
  /**
   * Get a different tier for this tier's maintainer that is at the same frequency
   * as this tier but with an equal or lesser cost. Returns the published tier with
   * the monthly price closest to this tier's without going over.
   */
  closestLesserValueTier?: Maybe<SponsorsTier>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** The description of the tier. */
  description: Scalars['String'];
  /** The tier description rendered to HTML */
  descriptionHTML: Scalars['HTML'];
  id: Scalars['ID'];
  /**
   * Whether this tier was chosen at checkout time by the sponsor rather than
   * defined ahead of time by the maintainer who manages the Sponsors listing.
   */
  isCustomAmount: Scalars['Boolean'];
  /** Whether this tier is only for use with one-time sponsorships. */
  isOneTime: Scalars['Boolean'];
  /** How much this tier costs per month in cents. */
  monthlyPriceInCents: Scalars['Int'];
  /** How much this tier costs per month in USD. */
  monthlyPriceInDollars: Scalars['Int'];
  /** The name of the tier. */
  name: Scalars['String'];
  /** The sponsors listing that this tier belongs to. */
  sponsorsListing: SponsorsListing;
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
};

/** SponsorsTier information only visible to users that can administer the associated Sponsors listing. */
export type SponsorsTierAdminInfo = {
  __typename?: 'SponsorsTierAdminInfo';
  /**
   * Indicates whether this tier is still a work in progress by the sponsorable and
   * not yet published to the associated GitHub Sponsors profile. Draft tiers
   * cannot be used for new sponsorships and will not be in use on existing
   * sponsorships. Draft tiers cannot be seen by anyone but the admins of the
   * GitHub Sponsors profile.
   */
  isDraft: Scalars['Boolean'];
  /**
   * Indicates whether this tier is published to the associated GitHub Sponsors
   * profile. Published tiers are visible to anyone who can see the GitHub Sponsors
   * profile, and are available for use in sponsorships if the GitHub Sponsors
   * profile is publicly visible.
   */
  isPublished: Scalars['Boolean'];
  /**
   * Indicates whether this tier has been retired from the associated GitHub
   * Sponsors profile. Retired tiers are no longer shown on the GitHub Sponsors
   * profile and cannot be chosen for new sponsorships. Existing sponsorships may
   * still use retired tiers if the sponsor selected the tier before it was retired.
   */
  isRetired: Scalars['Boolean'];
  /** The sponsorships using this tier. */
  sponsorships: SponsorshipConnection;
};


/** SponsorsTier information only visible to users that can administer the associated Sponsors listing. */
export type SponsorsTierAdminInfoSponsorshipsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  includePrivate?: InputMaybe<Scalars['Boolean']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<SponsorshipOrder>;
};

/** The connection type for SponsorsTier. */
export type SponsorsTierConnection = {
  __typename?: 'SponsorsTierConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<SponsorsTierEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<SponsorsTier>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type SponsorsTierEdge = {
  __typename?: 'SponsorsTierEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<SponsorsTier>;
};

/** Ordering options for Sponsors tiers connections. */
export type SponsorsTierOrder = {
  /** The ordering direction. */
  direction: OrderDirection;
  /** The field to order tiers by. */
  field: SponsorsTierOrderField;
};

/** Properties by which Sponsors tiers connections can be ordered. */
export type SponsorsTierOrderField =
  /** Order tiers by creation time. */
  | 'CREATED_AT'
  /** Order tiers by their monthly price in cents */
  | 'MONTHLY_PRICE_IN_CENTS';

/** A sponsorship relationship between a sponsor and a maintainer */
export type Sponsorship = Node & {
  __typename?: 'Sponsorship';
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  id: Scalars['ID'];
  /**
   * Whether the sponsorship is active. False implies the sponsor is a past sponsor
   * of the maintainer, while true implies they are a current sponsor.
   */
  isActive: Scalars['Boolean'];
  /** Whether this sponsorship represents a one-time payment versus a recurring sponsorship. */
  isOneTimePayment: Scalars['Boolean'];
  /**
   * Whether the sponsor has chosen to receive sponsorship update emails sent from
   * the sponsorable. Only returns a non-null value when the viewer has permission to know this.
   */
  isSponsorOptedIntoEmail?: Maybe<Scalars['Boolean']>;
  /**
   * The entity that is being sponsored
   * @deprecated `Sponsorship.maintainer` will be removed. Use `Sponsorship.sponsorable` instead. Removal on 2020-04-01 UTC.
   */
  maintainer: User;
  /** The privacy level for this sponsorship. */
  privacyLevel: SponsorshipPrivacy;
  /**
   * The user that is sponsoring. Returns null if the sponsorship is private or if sponsor is not a user.
   * @deprecated `Sponsorship.sponsor` will be removed. Use `Sponsorship.sponsorEntity` instead. Removal on 2020-10-01 UTC.
   */
  sponsor?: Maybe<User>;
  /** The user or organization that is sponsoring, if you have permission to view them. */
  sponsorEntity?: Maybe<Sponsor>;
  /** The entity that is being sponsored */
  sponsorable: Organization | User;
  /** The associated sponsorship tier */
  tier?: Maybe<SponsorsTier>;
  /** Identifies the date and time when the current tier was chosen for this sponsorship. */
  tierSelectedAt?: Maybe<Scalars['DateTime']>;
};

/** The connection type for Sponsorship. */
export type SponsorshipConnection = {
  __typename?: 'SponsorshipConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<SponsorshipEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<Sponsorship>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
  /**
   * The total amount in cents of all recurring sponsorships in the connection
   * whose amount you can view. Does not include one-time sponsorships.
   */
  totalRecurringMonthlyPriceInCents: Scalars['Int'];
  /**
   * The total amount in USD of all recurring sponsorships in the connection whose
   * amount you can view. Does not include one-time sponsorships.
   */
  totalRecurringMonthlyPriceInDollars: Scalars['Int'];
};

/** An edge in a connection. */
export type SponsorshipEdge = {
  __typename?: 'SponsorshipEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<Sponsorship>;
};

/** An update sent to sponsors of a user or organization on GitHub Sponsors. */
export type SponsorshipNewsletter = Node & {
  __typename?: 'SponsorshipNewsletter';
  /** The author of the newsletter. */
  author?: Maybe<User>;
  /** The contents of the newsletter, the message the sponsorable wanted to give. */
  body: Scalars['String'];
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  id: Scalars['ID'];
  /** Indicates if the newsletter has been made available to sponsors. */
  isPublished: Scalars['Boolean'];
  /** The user or organization this newsletter is from. */
  sponsorable: Organization | User;
  /** The subject of the newsletter, what it's about. */
  subject: Scalars['String'];
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
};

/** The connection type for SponsorshipNewsletter. */
export type SponsorshipNewsletterConnection = {
  __typename?: 'SponsorshipNewsletterConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<SponsorshipNewsletterEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<SponsorshipNewsletter>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type SponsorshipNewsletterEdge = {
  __typename?: 'SponsorshipNewsletterEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<SponsorshipNewsletter>;
};

/** Ordering options for sponsorship newsletter connections. */
export type SponsorshipNewsletterOrder = {
  /** The ordering direction. */
  direction: OrderDirection;
  /** The field to order sponsorship newsletters by. */
  field: SponsorshipNewsletterOrderField;
};

/** Properties by which sponsorship update connections can be ordered. */
export type SponsorshipNewsletterOrderField =
  /** Order sponsorship newsletters by when they were created. */
  | 'CREATED_AT';

/** Ordering options for sponsorship connections. */
export type SponsorshipOrder = {
  /** The ordering direction. */
  direction: OrderDirection;
  /** The field to order sponsorship by. */
  field: SponsorshipOrderField;
};

/** Properties by which sponsorship connections can be ordered. */
export type SponsorshipOrderField =
  /** Order sponsorship by creation time. */
  | 'CREATED_AT';

/** The privacy of a sponsorship */
export type SponsorshipPrivacy =
  /** Private */
  | 'PRIVATE'
  /** Public */
  | 'PUBLIC';

/** The possible default commit messages for squash merges. */
export type SquashMergeCommitMessage =
  /** Default to a blank commit message. */
  | 'BLANK'
  /** Default to the branch's commit messages. */
  | 'COMMIT_MESSAGES'
  /** Default to the pull request's body. */
  | 'PR_BODY';

/** The possible default commit titles for squash merges. */
export type SquashMergeCommitTitle =
  /** Default to the commit's title (if only one commit) or the pull request's title (when more than one commit). */
  | 'COMMIT_OR_PR_TITLE'
  /** Default to the pull request's title. */
  | 'PR_TITLE';

/** Represents an SSH signature on a Commit or Tag. */
export type SshSignature = GitSignature & {
  __typename?: 'SshSignature';
  /** Email used to sign this object. */
  email: Scalars['String'];
  /** True if the signature is valid and verified by GitHub. */
  isValid: Scalars['Boolean'];
  /** Hex-encoded fingerprint of the key that signed this object. */
  keyFingerprint?: Maybe<Scalars['String']>;
  /** Payload for GPG signing object. Raw ODB object without the signature header. */
  payload: Scalars['String'];
  /** ASCII-armored signature header from object. */
  signature: Scalars['String'];
  /** GitHub user corresponding to the email signing this commit. */
  signer?: Maybe<User>;
  /**
   * The state of this signature. `VALID` if signature is valid and verified by
   * GitHub, otherwise represents reason why signature is considered invalid.
   */
  state: GitSignatureState;
  /** True if the signature was made with GitHub's signing key. */
  wasSignedByGitHub: Scalars['Boolean'];
};

/** Ways in which star connections can be ordered. */
export type StarOrder = {
  /** The direction in which to order nodes. */
  direction: OrderDirection;
  /** The field in which to order nodes by. */
  field: StarOrderField;
};

/** Properties by which star connections can be ordered. */
export type StarOrderField =
  /** Allows ordering a list of stars by when they were created. */
  | 'STARRED_AT';

/** The connection type for User. */
export type StargazerConnection = {
  __typename?: 'StargazerConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<StargazerEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<User>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** Represents a user that's starred a repository. */
export type StargazerEdge = {
  __typename?: 'StargazerEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  node: User;
  /** Identifies when the item was starred. */
  starredAt: Scalars['DateTime'];
};

/** Things that can be starred. */
export type Starrable = {
  id: Scalars['ID'];
  /** Returns a count of how many stargazers there are on this object */
  stargazerCount: Scalars['Int'];
  /** A list of users who have starred this starrable. */
  stargazers: StargazerConnection;
  /** Returns a boolean indicating whether the viewing user has starred this starrable. */
  viewerHasStarred: Scalars['Boolean'];
};


/** Things that can be starred. */
export type StarrableStargazersArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<StarOrder>;
};

/** The connection type for Repository. */
export type StarredRepositoryConnection = {
  __typename?: 'StarredRepositoryConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<StarredRepositoryEdge>>>;
  /** Is the list of stars for this user truncated? This is true for users that have many stars. */
  isOverLimit: Scalars['Boolean'];
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<Repository>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** Represents a starred repository. */
export type StarredRepositoryEdge = {
  __typename?: 'StarredRepositoryEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  node: Repository;
  /** Identifies when the item was starred. */
  starredAt: Scalars['DateTime'];
};

/** Autogenerated input type of StartOrganizationMigration */
export type StartOrganizationMigrationInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The migration source access token. */
  sourceAccessToken: Scalars['String'];
  /** The URL of the organization to migrate. */
  sourceOrgUrl: Scalars['URI'];
  /** The ID of the enterprise the target organization belongs to. */
  targetEnterpriseId: Scalars['ID'];
  /** The name of the target organization. */
  targetOrgName: Scalars['String'];
};

/** Autogenerated return type of StartOrganizationMigration */
export type StartOrganizationMigrationPayload = {
  __typename?: 'StartOrganizationMigrationPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The new organization migration. */
  orgMigration?: Maybe<OrganizationMigration>;
};

/** Autogenerated input type of StartRepositoryMigration */
export type StartRepositoryMigrationInput = {
  /** The migration source access token. */
  accessToken?: InputMaybe<Scalars['String']>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** Whether to continue the migration on error. Defaults to `false`. */
  continueOnError?: InputMaybe<Scalars['Boolean']>;
  /** The signed URL to access the user-uploaded git archive. */
  gitArchiveUrl?: InputMaybe<Scalars['String']>;
  /** The GitHub personal access token of the user importing to the target repository. */
  githubPat?: InputMaybe<Scalars['String']>;
  /** Whether to lock the source repository. */
  lockSource?: InputMaybe<Scalars['Boolean']>;
  /** The signed URL to access the user-uploaded metadata archive. */
  metadataArchiveUrl?: InputMaybe<Scalars['String']>;
  /** The ID of the organization that will own the imported repository. */
  ownerId: Scalars['ID'];
  /** The name of the imported repository. */
  repositoryName: Scalars['String'];
  /** Whether to skip migrating releases for the repository. */
  skipReleases?: InputMaybe<Scalars['Boolean']>;
  /** The ID of the migration source. */
  sourceId: Scalars['ID'];
  /** The URL of the source repository. */
  sourceRepositoryUrl?: InputMaybe<Scalars['URI']>;
  /** The visibility of the imported repository. */
  targetRepoVisibility?: InputMaybe<Scalars['String']>;
};

/** Autogenerated return type of StartRepositoryMigration */
export type StartRepositoryMigrationPayload = {
  __typename?: 'StartRepositoryMigrationPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The new repository migration. */
  repositoryMigration?: Maybe<RepositoryMigration>;
};

/** Represents a commit status. */
export type Status = Node & {
  __typename?: 'Status';
  /** A list of status contexts and check runs for this commit. */
  combinedContexts: StatusCheckRollupContextConnection;
  /** The commit this status is attached to. */
  commit?: Maybe<Commit>;
  /** Looks up an individual status context by context name. */
  context?: Maybe<StatusContext>;
  /** The individual status contexts for this commit. */
  contexts: Array<StatusContext>;
  id: Scalars['ID'];
  /** The combined commit status. */
  state: StatusState;
};


/** Represents a commit status. */
export type StatusCombinedContextsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** Represents a commit status. */
export type StatusContextArgs = {
  name: Scalars['String'];
};

/** Represents the rollup for both the check runs and status for a commit. */
export type StatusCheckRollup = Node & {
  __typename?: 'StatusCheckRollup';
  /** The commit the status and check runs are attached to. */
  commit?: Maybe<Commit>;
  /** A list of status contexts and check runs for this commit. */
  contexts: StatusCheckRollupContextConnection;
  id: Scalars['ID'];
  /** The combined status for the commit. */
  state: StatusState;
};


/** Represents the rollup for both the check runs and status for a commit. */
export type StatusCheckRollupContextsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};

/** Types that can be inside a StatusCheckRollup context. */
export type StatusCheckRollupContext = CheckRun | StatusContext;

/** The connection type for StatusCheckRollupContext. */
export type StatusCheckRollupContextConnection = {
  __typename?: 'StatusCheckRollupContextConnection';
  /** The number of check runs in this rollup. */
  checkRunCount: Scalars['Int'];
  /** Counts of check runs by state. */
  checkRunCountsByState?: Maybe<Array<CheckRunStateCount>>;
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<StatusCheckRollupContextEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<StatusCheckRollupContext>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** The number of status contexts in this rollup. */
  statusContextCount: Scalars['Int'];
  /** Counts of status contexts by state. */
  statusContextCountsByState?: Maybe<Array<StatusContextStateCount>>;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type StatusCheckRollupContextEdge = {
  __typename?: 'StatusCheckRollupContextEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<StatusCheckRollupContext>;
};

/** Represents an individual commit status context */
export type StatusContext = Node & RequirableByPullRequest & {
  __typename?: 'StatusContext';
  /** The avatar of the OAuth application or the user that created the status */
  avatarUrl?: Maybe<Scalars['URI']>;
  /** This commit this status context is attached to. */
  commit?: Maybe<Commit>;
  /** The name of this status context. */
  context: Scalars['String'];
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** The actor who created this status context. */
  creator?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** The description for this status context. */
  description?: Maybe<Scalars['String']>;
  id: Scalars['ID'];
  /** Whether this is required to pass before merging for a specific pull request. */
  isRequired: Scalars['Boolean'];
  /** The state of this status context. */
  state: StatusState;
  /** The URL for this status context. */
  targetUrl?: Maybe<Scalars['URI']>;
};


/** Represents an individual commit status context */
export type StatusContextAvatarUrlArgs = {
  size?: InputMaybe<Scalars['Int']>;
};


/** Represents an individual commit status context */
export type StatusContextIsRequiredArgs = {
  pullRequestId?: InputMaybe<Scalars['ID']>;
  pullRequestNumber?: InputMaybe<Scalars['Int']>;
};

/** Represents a count of the state of a status context. */
export type StatusContextStateCount = {
  __typename?: 'StatusContextStateCount';
  /** The number of statuses with this state. */
  count: Scalars['Int'];
  /** The state of a status context. */
  state: StatusState;
};

/** The possible commit status states. */
export type StatusState =
  /** Status is errored. */
  | 'ERROR'
  /** Status is expected. */
  | 'EXPECTED'
  /** Status is failing. */
  | 'FAILURE'
  /** Status is pending. */
  | 'PENDING'
  /** Status is successful. */
  | 'SUCCESS';

/** A Stripe Connect account for receiving sponsorship funds from GitHub Sponsors. */
export type StripeConnectAccount = {
  __typename?: 'StripeConnectAccount';
  /** The account number used to identify this Stripe Connect account. */
  accountId: Scalars['String'];
  /**
   * The name of the country or region of an external account, such as a bank
   * account, tied to the Stripe Connect account. Will only return a value when
   * queried by the maintainer of the associated GitHub Sponsors profile
   * themselves, or by an admin of the sponsorable organization.
   */
  billingCountryOrRegion?: Maybe<Scalars['String']>;
  /**
   * The name of the country or region of the Stripe Connect account. Will only
   * return a value when queried by the maintainer of the associated GitHub
   * Sponsors profile themselves, or by an admin of the sponsorable organization.
   */
  countryOrRegion?: Maybe<Scalars['String']>;
  /** Whether this Stripe Connect account is currently in use for the associated GitHub Sponsors profile. */
  isActive: Scalars['Boolean'];
  /** The GitHub Sponsors profile associated with this Stripe Connect account. */
  sponsorsListing: SponsorsListing;
  /** The URL to access this Stripe Connect account on Stripe's website. */
  stripeDashboardUrl: Scalars['URI'];
};

/** Autogenerated input type of SubmitPullRequestReview */
export type SubmitPullRequestReviewInput = {
  /** The text field to set on the Pull Request Review. */
  body?: InputMaybe<Scalars['String']>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The event to send to the Pull Request Review. */
  event: PullRequestReviewEvent;
  /** The Pull Request ID to submit any pending reviews. */
  pullRequestId?: InputMaybe<Scalars['ID']>;
  /** The Pull Request Review ID to submit. */
  pullRequestReviewId?: InputMaybe<Scalars['ID']>;
};

/** Autogenerated return type of SubmitPullRequestReview */
export type SubmitPullRequestReviewPayload = {
  __typename?: 'SubmitPullRequestReviewPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The submitted pull request review. */
  pullRequestReview?: Maybe<PullRequestReview>;
};

/** A pointer to a repository at a specific revision embedded inside another repository. */
export type Submodule = {
  __typename?: 'Submodule';
  /** The branch of the upstream submodule for tracking updates */
  branch?: Maybe<Scalars['String']>;
  /** The git URL of the submodule repository */
  gitUrl: Scalars['URI'];
  /** The name of the submodule in .gitmodules */
  name: Scalars['String'];
  /** The name of the submodule in .gitmodules (Base64-encoded) */
  nameRaw: Scalars['Base64String'];
  /** The path in the superproject that this submodule is located in */
  path: Scalars['String'];
  /** The path in the superproject that this submodule is located in (Base64-encoded) */
  pathRaw: Scalars['Base64String'];
  /** The commit revision of the subproject repository being tracked by the submodule */
  subprojectCommitOid?: Maybe<Scalars['GitObjectID']>;
};

/** The connection type for Submodule. */
export type SubmoduleConnection = {
  __typename?: 'SubmoduleConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<SubmoduleEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<Submodule>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type SubmoduleEdge = {
  __typename?: 'SubmoduleEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<Submodule>;
};

/** Entities that can be subscribed to for web and email notifications. */
export type Subscribable = {
  id: Scalars['ID'];
  /** Check if the viewer is able to change their subscription status for the repository. */
  viewerCanSubscribe: Scalars['Boolean'];
  /** Identifies if the viewer is watching, not watching, or ignoring the subscribable entity. */
  viewerSubscription?: Maybe<SubscriptionState>;
};

/** Represents a 'subscribed' event on a given `Subscribable`. */
export type SubscribedEvent = Node & {
  __typename?: 'SubscribedEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  id: Scalars['ID'];
  /** Object referenced by event. */
  subscribable: Commit | Discussion | Issue | PullRequest | Repository | Team | TeamDiscussion;
};

/** The possible states of a subscription. */
export type SubscriptionState =
  /** The User is never notified. */
  | 'IGNORED'
  /** The User is notified of all conversations. */
  | 'SUBSCRIBED'
  /** The User is only notified when participating or @mentioned. */
  | 'UNSUBSCRIBED';

/** A suggestion to review a pull request based on a user's commit history and review comments. */
export type SuggestedReviewer = {
  __typename?: 'SuggestedReviewer';
  /** Is this suggestion based on past commits? */
  isAuthor: Scalars['Boolean'];
  /** Is this suggestion based on past review comments? */
  isCommenter: Scalars['Boolean'];
  /** Identifies the user suggested to review the pull request. */
  reviewer: User;
};

/** Represents a Git tag. */
export type Tag = GitObject & Node & {
  __typename?: 'Tag';
  /** An abbreviated version of the Git object ID */
  abbreviatedOid: Scalars['String'];
  /** The HTTP path for this Git object */
  commitResourcePath: Scalars['URI'];
  /** The HTTP URL for this Git object */
  commitUrl: Scalars['URI'];
  id: Scalars['ID'];
  /** The Git tag message. */
  message?: Maybe<Scalars['String']>;
  /** The Git tag name. */
  name: Scalars['String'];
  /** The Git object ID */
  oid: Scalars['GitObjectID'];
  /** The Repository the Git object belongs to */
  repository: Repository;
  /** Details about the tag author. */
  tagger?: Maybe<GitActor>;
  /** The Git object the tag points to. */
  target: Blob | Commit | Tag | Tree;
};

/** A team of users in an organization. */
export type Team = MemberStatusable & Node & Subscribable & {
  __typename?: 'Team';
  /** A list of teams that are ancestors of this team. */
  ancestors: TeamConnection;
  /** A URL pointing to the team's avatar. */
  avatarUrl?: Maybe<Scalars['URI']>;
  /** List of child teams belonging to this team */
  childTeams: TeamConnection;
  /** The slug corresponding to the organization and team. */
  combinedSlug: Scalars['String'];
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** The description of the team. */
  description?: Maybe<Scalars['String']>;
  /** Find a team discussion by its number. */
  discussion?: Maybe<TeamDiscussion>;
  /** A list of team discussions. */
  discussions: TeamDiscussionConnection;
  /** The HTTP path for team discussions */
  discussionsResourcePath: Scalars['URI'];
  /** The HTTP URL for team discussions */
  discussionsUrl: Scalars['URI'];
  /** The HTTP path for editing this team */
  editTeamResourcePath: Scalars['URI'];
  /** The HTTP URL for editing this team */
  editTeamUrl: Scalars['URI'];
  id: Scalars['ID'];
  /** A list of pending invitations for users to this team */
  invitations?: Maybe<OrganizationInvitationConnection>;
  /** Get the status messages members of this entity have set that are either public or visible only to the organization. */
  memberStatuses: UserStatusConnection;
  /** A list of users who are members of this team. */
  members: TeamMemberConnection;
  /** The HTTP path for the team' members */
  membersResourcePath: Scalars['URI'];
  /** The HTTP URL for the team' members */
  membersUrl: Scalars['URI'];
  /** The name of the team. */
  name: Scalars['String'];
  /** The HTTP path creating a new team */
  newTeamResourcePath: Scalars['URI'];
  /** The HTTP URL creating a new team */
  newTeamUrl: Scalars['URI'];
  /** The organization that owns this team. */
  organization: Organization;
  /** The parent team of the team. */
  parentTeam?: Maybe<Team>;
  /** The level of privacy the team has. */
  privacy: TeamPrivacy;
  /** Finds and returns the project according to the provided project number. */
  projectV2?: Maybe<ProjectV2>;
  /** List of projects this team has collaborator access to. */
  projectsV2: ProjectV2Connection;
  /** A list of repositories this team has access to. */
  repositories: TeamRepositoryConnection;
  /** The HTTP path for this team's repositories */
  repositoriesResourcePath: Scalars['URI'];
  /** The HTTP URL for this team's repositories */
  repositoriesUrl: Scalars['URI'];
  /** The HTTP path for this team */
  resourcePath: Scalars['URI'];
  /** The slug corresponding to the team. */
  slug: Scalars['String'];
  /** The HTTP path for this team's teams */
  teamsResourcePath: Scalars['URI'];
  /** The HTTP URL for this team's teams */
  teamsUrl: Scalars['URI'];
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
  /** The HTTP URL for this team */
  url: Scalars['URI'];
  /** Team is adminable by the viewer. */
  viewerCanAdminister: Scalars['Boolean'];
  /** Check if the viewer is able to change their subscription status for the repository. */
  viewerCanSubscribe: Scalars['Boolean'];
  /** Identifies if the viewer is watching, not watching, or ignoring the subscribable entity. */
  viewerSubscription?: Maybe<SubscriptionState>;
};


/** A team of users in an organization. */
export type TeamAncestorsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A team of users in an organization. */
export type TeamAvatarUrlArgs = {
  size?: InputMaybe<Scalars['Int']>;
};


/** A team of users in an organization. */
export type TeamChildTeamsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  immediateOnly?: InputMaybe<Scalars['Boolean']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<TeamOrder>;
  userLogins?: InputMaybe<Array<Scalars['String']>>;
};


/** A team of users in an organization. */
export type TeamDiscussionArgs = {
  number: Scalars['Int'];
};


/** A team of users in an organization. */
export type TeamDiscussionsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  isPinned?: InputMaybe<Scalars['Boolean']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<TeamDiscussionOrder>;
};


/** A team of users in an organization. */
export type TeamInvitationsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A team of users in an organization. */
export type TeamMemberStatusesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<UserStatusOrder>;
};


/** A team of users in an organization. */
export type TeamMembersArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  membership?: InputMaybe<TeamMembershipType>;
  orderBy?: InputMaybe<TeamMemberOrder>;
  query?: InputMaybe<Scalars['String']>;
  role?: InputMaybe<TeamMemberRole>;
};


/** A team of users in an organization. */
export type TeamProjectV2Args = {
  number: Scalars['Int'];
};


/** A team of users in an organization. */
export type TeamProjectsV2Args = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  filterBy?: InputMaybe<ProjectV2Filters>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ProjectV2Order>;
  query?: InputMaybe<Scalars['String']>;
};


/** A team of users in an organization. */
export type TeamRepositoriesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<TeamRepositoryOrder>;
  query?: InputMaybe<Scalars['String']>;
};

/** Audit log entry for a team.add_member event. */
export type TeamAddMemberAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & TeamAuditEntryData & {
  __typename?: 'TeamAddMemberAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** Whether the team was mapped to an LDAP Group. */
  isLdapMapped?: Maybe<Scalars['Boolean']>;
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The team associated with the action */
  team?: Maybe<Team>;
  /** The name of the team */
  teamName?: Maybe<Scalars['String']>;
  /** The HTTP path for this team */
  teamResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for this team */
  teamUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** Audit log entry for a team.add_repository event. */
export type TeamAddRepositoryAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData & TeamAuditEntryData & {
  __typename?: 'TeamAddRepositoryAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** Whether the team was mapped to an LDAP Group. */
  isLdapMapped?: Maybe<Scalars['Boolean']>;
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The repository associated with the action */
  repository?: Maybe<Repository>;
  /** The name of the repository */
  repositoryName?: Maybe<Scalars['String']>;
  /** The HTTP path for the repository */
  repositoryResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the repository */
  repositoryUrl?: Maybe<Scalars['URI']>;
  /** The team associated with the action */
  team?: Maybe<Team>;
  /** The name of the team */
  teamName?: Maybe<Scalars['String']>;
  /** The HTTP path for this team */
  teamResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for this team */
  teamUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** Metadata for an audit entry with action team.* */
export type TeamAuditEntryData = {
  /** The team associated with the action */
  team?: Maybe<Team>;
  /** The name of the team */
  teamName?: Maybe<Scalars['String']>;
  /** The HTTP path for this team */
  teamResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for this team */
  teamUrl?: Maybe<Scalars['URI']>;
};

/** Audit log entry for a team.change_parent_team event. */
export type TeamChangeParentTeamAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & TeamAuditEntryData & {
  __typename?: 'TeamChangeParentTeamAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** Whether the team was mapped to an LDAP Group. */
  isLdapMapped?: Maybe<Scalars['Boolean']>;
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The new parent team. */
  parentTeam?: Maybe<Team>;
  /** The name of the new parent team */
  parentTeamName?: Maybe<Scalars['String']>;
  /** The name of the former parent team */
  parentTeamNameWas?: Maybe<Scalars['String']>;
  /** The HTTP path for the parent team */
  parentTeamResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the parent team */
  parentTeamUrl?: Maybe<Scalars['URI']>;
  /** The former parent team. */
  parentTeamWas?: Maybe<Team>;
  /** The HTTP path for the previous parent team */
  parentTeamWasResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the previous parent team */
  parentTeamWasUrl?: Maybe<Scalars['URI']>;
  /** The team associated with the action */
  team?: Maybe<Team>;
  /** The name of the team */
  teamName?: Maybe<Scalars['String']>;
  /** The HTTP path for this team */
  teamResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for this team */
  teamUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** The connection type for Team. */
export type TeamConnection = {
  __typename?: 'TeamConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<TeamEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<Team>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** A team discussion. */
export type TeamDiscussion = Comment & Deletable & Node & Reactable & Subscribable & UniformResourceLocatable & Updatable & UpdatableComment & {
  __typename?: 'TeamDiscussion';
  /** The actor who authored the comment. */
  author?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Author's association with the discussion's team. */
  authorAssociation: CommentAuthorAssociation;
  /** The body as Markdown. */
  body: Scalars['String'];
  /** The body rendered to HTML. */
  bodyHTML: Scalars['HTML'];
  /** The body rendered to text. */
  bodyText: Scalars['String'];
  /** Identifies the discussion body hash. */
  bodyVersion: Scalars['String'];
  /** A list of comments on this discussion. */
  comments: TeamDiscussionCommentConnection;
  /** The HTTP path for discussion comments */
  commentsResourcePath: Scalars['URI'];
  /** The HTTP URL for discussion comments */
  commentsUrl: Scalars['URI'];
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Check if this comment was created via an email reply. */
  createdViaEmail: Scalars['Boolean'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** The actor who edited the comment. */
  editor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  id: Scalars['ID'];
  /** Check if this comment was edited and includes an edit with the creation data */
  includesCreatedEdit: Scalars['Boolean'];
  /** Whether or not the discussion is pinned. */
  isPinned: Scalars['Boolean'];
  /** Whether or not the discussion is only visible to team members and org admins. */
  isPrivate: Scalars['Boolean'];
  /** The moment the editor made the last edit */
  lastEditedAt?: Maybe<Scalars['DateTime']>;
  /** Identifies the discussion within its team. */
  number: Scalars['Int'];
  /** Identifies when the comment was published at. */
  publishedAt?: Maybe<Scalars['DateTime']>;
  /** A list of reactions grouped by content left on the subject. */
  reactionGroups?: Maybe<Array<ReactionGroup>>;
  /** A list of Reactions left on the Issue. */
  reactions: ReactionConnection;
  /** The HTTP path for this discussion */
  resourcePath: Scalars['URI'];
  /** The team that defines the context of this discussion. */
  team: Team;
  /** The title of the discussion */
  title: Scalars['String'];
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
  /** The HTTP URL for this discussion */
  url: Scalars['URI'];
  /** A list of edits to this content. */
  userContentEdits?: Maybe<UserContentEditConnection>;
  /** Check if the current viewer can delete this object. */
  viewerCanDelete: Scalars['Boolean'];
  /** Whether or not the current viewer can pin this discussion. */
  viewerCanPin: Scalars['Boolean'];
  /** Can user react to this subject */
  viewerCanReact: Scalars['Boolean'];
  /** Check if the viewer is able to change their subscription status for the repository. */
  viewerCanSubscribe: Scalars['Boolean'];
  /** Check if the current viewer can update this object. */
  viewerCanUpdate: Scalars['Boolean'];
  /** Reasons why the current viewer can not update this comment. */
  viewerCannotUpdateReasons: Array<CommentCannotUpdateReason>;
  /** Did the viewer author this comment. */
  viewerDidAuthor: Scalars['Boolean'];
  /** Identifies if the viewer is watching, not watching, or ignoring the subscribable entity. */
  viewerSubscription?: Maybe<SubscriptionState>;
};


/** A team discussion. */
export type TeamDiscussionCommentsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  fromComment?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<TeamDiscussionCommentOrder>;
};


/** A team discussion. */
export type TeamDiscussionReactionsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  content?: InputMaybe<ReactionContent>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ReactionOrder>;
};


/** A team discussion. */
export type TeamDiscussionUserContentEditsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};

/** A comment on a team discussion. */
export type TeamDiscussionComment = Comment & Deletable & Node & Reactable & UniformResourceLocatable & Updatable & UpdatableComment & {
  __typename?: 'TeamDiscussionComment';
  /** The actor who authored the comment. */
  author?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Author's association with the comment's team. */
  authorAssociation: CommentAuthorAssociation;
  /** The body as Markdown. */
  body: Scalars['String'];
  /** The body rendered to HTML. */
  bodyHTML: Scalars['HTML'];
  /** The body rendered to text. */
  bodyText: Scalars['String'];
  /** The current version of the body content. */
  bodyVersion: Scalars['String'];
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Check if this comment was created via an email reply. */
  createdViaEmail: Scalars['Boolean'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** The discussion this comment is about. */
  discussion: TeamDiscussion;
  /** The actor who edited the comment. */
  editor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  id: Scalars['ID'];
  /** Check if this comment was edited and includes an edit with the creation data */
  includesCreatedEdit: Scalars['Boolean'];
  /** The moment the editor made the last edit */
  lastEditedAt?: Maybe<Scalars['DateTime']>;
  /** Identifies the comment number. */
  number: Scalars['Int'];
  /** Identifies when the comment was published at. */
  publishedAt?: Maybe<Scalars['DateTime']>;
  /** A list of reactions grouped by content left on the subject. */
  reactionGroups?: Maybe<Array<ReactionGroup>>;
  /** A list of Reactions left on the Issue. */
  reactions: ReactionConnection;
  /** The HTTP path for this comment */
  resourcePath: Scalars['URI'];
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
  /** The HTTP URL for this comment */
  url: Scalars['URI'];
  /** A list of edits to this content. */
  userContentEdits?: Maybe<UserContentEditConnection>;
  /** Check if the current viewer can delete this object. */
  viewerCanDelete: Scalars['Boolean'];
  /** Can user react to this subject */
  viewerCanReact: Scalars['Boolean'];
  /** Check if the current viewer can update this object. */
  viewerCanUpdate: Scalars['Boolean'];
  /** Reasons why the current viewer can not update this comment. */
  viewerCannotUpdateReasons: Array<CommentCannotUpdateReason>;
  /** Did the viewer author this comment. */
  viewerDidAuthor: Scalars['Boolean'];
};


/** A comment on a team discussion. */
export type TeamDiscussionCommentReactionsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  content?: InputMaybe<ReactionContent>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ReactionOrder>;
};


/** A comment on a team discussion. */
export type TeamDiscussionCommentUserContentEditsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};

/** The connection type for TeamDiscussionComment. */
export type TeamDiscussionCommentConnection = {
  __typename?: 'TeamDiscussionCommentConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<TeamDiscussionCommentEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<TeamDiscussionComment>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type TeamDiscussionCommentEdge = {
  __typename?: 'TeamDiscussionCommentEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<TeamDiscussionComment>;
};

/** Ways in which team discussion comment connections can be ordered. */
export type TeamDiscussionCommentOrder = {
  /** The direction in which to order nodes. */
  direction: OrderDirection;
  /** The field by which to order nodes. */
  field: TeamDiscussionCommentOrderField;
};

/** Properties by which team discussion comment connections can be ordered. */
export type TeamDiscussionCommentOrderField =
  /** Allows sequential ordering of team discussion comments (which is equivalent to chronological ordering). */
  | 'NUMBER';

/** The connection type for TeamDiscussion. */
export type TeamDiscussionConnection = {
  __typename?: 'TeamDiscussionConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<TeamDiscussionEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<TeamDiscussion>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type TeamDiscussionEdge = {
  __typename?: 'TeamDiscussionEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<TeamDiscussion>;
};

/** Ways in which team discussion connections can be ordered. */
export type TeamDiscussionOrder = {
  /** The direction in which to order nodes. */
  direction: OrderDirection;
  /** The field by which to order nodes. */
  field: TeamDiscussionOrderField;
};

/** Properties by which team discussion connections can be ordered. */
export type TeamDiscussionOrderField =
  /** Allows chronological ordering of team discussions. */
  | 'CREATED_AT';

/** An edge in a connection. */
export type TeamEdge = {
  __typename?: 'TeamEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<Team>;
};

/** The connection type for User. */
export type TeamMemberConnection = {
  __typename?: 'TeamMemberConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<TeamMemberEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<User>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** Represents a user who is a member of a team. */
export type TeamMemberEdge = {
  __typename?: 'TeamMemberEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The HTTP path to the organization's member access page. */
  memberAccessResourcePath: Scalars['URI'];
  /** The HTTP URL to the organization's member access page. */
  memberAccessUrl: Scalars['URI'];
  node: User;
  /** The role the member has on the team. */
  role: TeamMemberRole;
};

/** Ordering options for team member connections */
export type TeamMemberOrder = {
  /** The ordering direction. */
  direction: OrderDirection;
  /** The field to order team members by. */
  field: TeamMemberOrderField;
};

/** Properties by which team member connections can be ordered. */
export type TeamMemberOrderField =
  /** Order team members by creation time */
  | 'CREATED_AT'
  /** Order team members by login */
  | 'LOGIN';

/** The possible team member roles; either 'maintainer' or 'member'. */
export type TeamMemberRole =
  /** A team maintainer has permission to add and remove team members. */
  | 'MAINTAINER'
  /** A team member has no administrative permissions on the team. */
  | 'MEMBER';

/** Defines which types of team members are included in the returned list. Can be one of IMMEDIATE, CHILD_TEAM or ALL. */
export type TeamMembershipType =
  /** Includes immediate and child team members for the team. */
  | 'ALL'
  /** Includes only child team members for the team. */
  | 'CHILD_TEAM'
  /** Includes only immediate members of the team. */
  | 'IMMEDIATE';

/** Ways in which team connections can be ordered. */
export type TeamOrder = {
  /** The direction in which to order nodes. */
  direction: OrderDirection;
  /** The field in which to order nodes by. */
  field: TeamOrderField;
};

/** Properties by which team connections can be ordered. */
export type TeamOrderField =
  /** Allows ordering a list of teams by name. */
  | 'NAME';

/** The possible team privacy values. */
export type TeamPrivacy =
  /** A secret team can only be seen by its members. */
  | 'SECRET'
  /** A visible team can be seen and @mentioned by every member of the organization. */
  | 'VISIBLE';

/** Audit log entry for a team.remove_member event. */
export type TeamRemoveMemberAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & TeamAuditEntryData & {
  __typename?: 'TeamRemoveMemberAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** Whether the team was mapped to an LDAP Group. */
  isLdapMapped?: Maybe<Scalars['Boolean']>;
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The team associated with the action */
  team?: Maybe<Team>;
  /** The name of the team */
  teamName?: Maybe<Scalars['String']>;
  /** The HTTP path for this team */
  teamResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for this team */
  teamUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** Audit log entry for a team.remove_repository event. */
export type TeamRemoveRepositoryAuditEntry = AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData & TeamAuditEntryData & {
  __typename?: 'TeamRemoveRepositoryAuditEntry';
  /** The action name */
  action: Scalars['String'];
  /** The user who initiated the action */
  actor?: Maybe<AuditEntryActor>;
  /** The IP address of the actor */
  actorIp?: Maybe<Scalars['String']>;
  /** A readable representation of the actor's location */
  actorLocation?: Maybe<ActorLocation>;
  /** The username of the user who initiated the action */
  actorLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the actor. */
  actorResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the actor. */
  actorUrl?: Maybe<Scalars['URI']>;
  /** The time the action was initiated */
  createdAt: Scalars['PreciseDateTime'];
  id: Scalars['ID'];
  /** Whether the team was mapped to an LDAP Group. */
  isLdapMapped?: Maybe<Scalars['Boolean']>;
  /** The corresponding operation type for the action */
  operationType?: Maybe<OperationType>;
  /** The Organization associated with the Audit Entry. */
  organization?: Maybe<Organization>;
  /** The name of the Organization. */
  organizationName?: Maybe<Scalars['String']>;
  /** The HTTP path for the organization */
  organizationResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the organization */
  organizationUrl?: Maybe<Scalars['URI']>;
  /** The repository associated with the action */
  repository?: Maybe<Repository>;
  /** The name of the repository */
  repositoryName?: Maybe<Scalars['String']>;
  /** The HTTP path for the repository */
  repositoryResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the repository */
  repositoryUrl?: Maybe<Scalars['URI']>;
  /** The team associated with the action */
  team?: Maybe<Team>;
  /** The name of the team */
  teamName?: Maybe<Scalars['String']>;
  /** The HTTP path for this team */
  teamResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for this team */
  teamUrl?: Maybe<Scalars['URI']>;
  /** The user affected by the action */
  user?: Maybe<User>;
  /** For actions involving two users, the actor is the initiator and the user is the affected user. */
  userLogin?: Maybe<Scalars['String']>;
  /** The HTTP path for the user. */
  userResourcePath?: Maybe<Scalars['URI']>;
  /** The HTTP URL for the user. */
  userUrl?: Maybe<Scalars['URI']>;
};

/** The connection type for Repository. */
export type TeamRepositoryConnection = {
  __typename?: 'TeamRepositoryConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<TeamRepositoryEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<Repository>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** Represents a team repository. */
export type TeamRepositoryEdge = {
  __typename?: 'TeamRepositoryEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  node: Repository;
  /** The permission level the team has on the repository */
  permission: RepositoryPermission;
};

/** Ordering options for team repository connections */
export type TeamRepositoryOrder = {
  /** The ordering direction. */
  direction: OrderDirection;
  /** The field to order repositories by. */
  field: TeamRepositoryOrderField;
};

/** Properties by which team repository connections can be ordered. */
export type TeamRepositoryOrderField =
  /** Order repositories by creation time */
  | 'CREATED_AT'
  /** Order repositories by name */
  | 'NAME'
  /** Order repositories by permission */
  | 'PERMISSION'
  /** Order repositories by push time */
  | 'PUSHED_AT'
  /** Order repositories by number of stargazers */
  | 'STARGAZERS'
  /** Order repositories by update time */
  | 'UPDATED_AT';

/** The role of a user on a team. */
export type TeamRole =
  /** User has admin rights on the team. */
  | 'ADMIN'
  /** User is a member of the team. */
  | 'MEMBER';

/** A text match within a search result. */
export type TextMatch = {
  __typename?: 'TextMatch';
  /** The specific text fragment within the property matched on. */
  fragment: Scalars['String'];
  /** Highlights within the matched fragment. */
  highlights: Array<TextMatchHighlight>;
  /** The property matched on. */
  property: Scalars['String'];
};

/** Represents a single highlight in a search result match. */
export type TextMatchHighlight = {
  __typename?: 'TextMatchHighlight';
  /** The indice in the fragment where the matched text begins. */
  beginIndice: Scalars['Int'];
  /** The indice in the fragment where the matched text ends. */
  endIndice: Scalars['Int'];
  /** The text matched. */
  text: Scalars['String'];
};

/** A topic aggregates entities that are related to a subject. */
export type Topic = Node & Starrable & {
  __typename?: 'Topic';
  id: Scalars['ID'];
  /** The topic's name. */
  name: Scalars['String'];
  /**
   * A list of related topics, including aliases of this topic, sorted with the most relevant
   * first. Returns up to 10 Topics.
   */
  relatedTopics: Array<Topic>;
  /** A list of repositories. */
  repositories: RepositoryConnection;
  /** Returns a count of how many stargazers there are on this object */
  stargazerCount: Scalars['Int'];
  /** A list of users who have starred this starrable. */
  stargazers: StargazerConnection;
  /** Returns a boolean indicating whether the viewing user has starred this starrable. */
  viewerHasStarred: Scalars['Boolean'];
};


/** A topic aggregates entities that are related to a subject. */
export type TopicRelatedTopicsArgs = {
  first?: InputMaybe<Scalars['Int']>;
};


/** A topic aggregates entities that are related to a subject. */
export type TopicRepositoriesArgs = {
  affiliations?: InputMaybe<Array<InputMaybe<RepositoryAffiliation>>>;
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  isLocked?: InputMaybe<Scalars['Boolean']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<RepositoryOrder>;
  ownerAffiliations?: InputMaybe<Array<InputMaybe<RepositoryAffiliation>>>;
  privacy?: InputMaybe<RepositoryPrivacy>;
  sponsorableOnly?: InputMaybe<Scalars['Boolean']>;
};


/** A topic aggregates entities that are related to a subject. */
export type TopicStargazersArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<StarOrder>;
};

/** Metadata for an audit entry with a topic. */
export type TopicAuditEntryData = {
  /** The name of the topic added to the repository */
  topic?: Maybe<Topic>;
  /** The name of the topic added to the repository */
  topicName?: Maybe<Scalars['String']>;
};

/** Reason that the suggested topic is declined. */
export type TopicSuggestionDeclineReason =
  /** The suggested topic is not relevant to the repository. */
  | 'NOT_RELEVANT'
  /** The viewer does not like the suggested topic. */
  | 'PERSONAL_PREFERENCE'
  /** The suggested topic is too general for the repository. */
  | 'TOO_GENERAL'
  /** The suggested topic is too specific for the repository (e.g. #ruby-on-rails-version-4-2-1). */
  | 'TOO_SPECIFIC';

/** The possible states of a tracked issue. */
export type TrackedIssueStates =
  /** The tracked issue is closed */
  | 'CLOSED'
  /** The tracked issue is open */
  | 'OPEN';

/** Autogenerated input type of TransferEnterpriseOrganization */
export type TransferEnterpriseOrganizationInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the enterprise where the organization should be transferred. */
  destinationEnterpriseId: Scalars['ID'];
  /** The ID of the organization to transfer. */
  organizationId: Scalars['ID'];
};

/** Autogenerated return type of TransferEnterpriseOrganization */
export type TransferEnterpriseOrganizationPayload = {
  __typename?: 'TransferEnterpriseOrganizationPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The organization for which a transfer was initiated. */
  organization?: Maybe<Organization>;
};

/** Autogenerated input type of TransferIssue */
export type TransferIssueInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** Whether to create labels if they don't exist in the target repository (matched by name) */
  createLabelsIfMissing?: InputMaybe<Scalars['Boolean']>;
  /** The Node ID of the issue to be transferred */
  issueId: Scalars['ID'];
  /** The Node ID of the repository the issue should be transferred to */
  repositoryId: Scalars['ID'];
};

/** Autogenerated return type of TransferIssue */
export type TransferIssuePayload = {
  __typename?: 'TransferIssuePayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The issue that was transferred */
  issue?: Maybe<Issue>;
};

/** Represents a 'transferred' event on a given issue or pull request. */
export type TransferredEvent = Node & {
  __typename?: 'TransferredEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** The repository this came from */
  fromRepository?: Maybe<Repository>;
  id: Scalars['ID'];
  /** Identifies the issue associated with the event. */
  issue: Issue;
};

/** Represents a Git tree. */
export type Tree = GitObject & Node & {
  __typename?: 'Tree';
  /** An abbreviated version of the Git object ID */
  abbreviatedOid: Scalars['String'];
  /** The HTTP path for this Git object */
  commitResourcePath: Scalars['URI'];
  /** The HTTP URL for this Git object */
  commitUrl: Scalars['URI'];
  /** A list of tree entries. */
  entries?: Maybe<Array<TreeEntry>>;
  id: Scalars['ID'];
  /** The Git object ID */
  oid: Scalars['GitObjectID'];
  /** The Repository the Git object belongs to */
  repository: Repository;
};

/** Represents a Git tree entry. */
export type TreeEntry = {
  __typename?: 'TreeEntry';
  /** The extension of the file */
  extension?: Maybe<Scalars['String']>;
  /** Whether or not this tree entry is generated */
  isGenerated: Scalars['Boolean'];
  /** The programming language this file is written in. */
  language?: Maybe<Language>;
  /** Number of lines in the file. */
  lineCount?: Maybe<Scalars['Int']>;
  /** Entry file mode. */
  mode: Scalars['Int'];
  /** Entry file name. */
  name: Scalars['String'];
  /** Entry file name. (Base64-encoded) */
  nameRaw: Scalars['Base64String'];
  /** Entry file object. */
  object?: Maybe<Blob | Commit | Tag | Tree>;
  /** Entry file Git object ID. */
  oid: Scalars['GitObjectID'];
  /** The full path of the file. */
  path?: Maybe<Scalars['String']>;
  /** The full path of the file. (Base64-encoded) */
  pathRaw?: Maybe<Scalars['Base64String']>;
  /** The Repository the tree entry belongs to */
  repository: Repository;
  /** Entry byte size */
  size: Scalars['Int'];
  /** If the TreeEntry is for a directory occupied by a submodule project, this returns the corresponding submodule */
  submodule?: Maybe<Submodule>;
  /** Entry file type. */
  type: Scalars['String'];
};

/** Autogenerated input type of UnarchiveProjectV2Item */
export type UnarchiveProjectV2ItemInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the ProjectV2Item to unarchive. */
  itemId: Scalars['ID'];
  /** The ID of the Project to archive the item from. */
  projectId: Scalars['ID'];
};

/** Autogenerated return type of UnarchiveProjectV2Item */
export type UnarchiveProjectV2ItemPayload = {
  __typename?: 'UnarchiveProjectV2ItemPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The item unarchived from the project. */
  item?: Maybe<ProjectV2Item>;
};

/** Autogenerated input type of UnarchiveRepository */
export type UnarchiveRepositoryInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the repository to unarchive. */
  repositoryId: Scalars['ID'];
};

/** Autogenerated return type of UnarchiveRepository */
export type UnarchiveRepositoryPayload = {
  __typename?: 'UnarchiveRepositoryPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The repository that was unarchived. */
  repository?: Maybe<Repository>;
};

/** Represents an 'unassigned' event on any assignable object. */
export type UnassignedEvent = Node & {
  __typename?: 'UnassignedEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the assignable associated with the event. */
  assignable: Issue | PullRequest;
  /** Identifies the user or mannequin that was unassigned. */
  assignee?: Maybe<Assignee>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  id: Scalars['ID'];
  /**
   * Identifies the subject (user) who was unassigned.
   * @deprecated Assignees can now be mannequins. Use the `assignee` field instead. Removal on 2020-01-01 UTC.
   */
  user?: Maybe<User>;
};

/** Autogenerated input type of UnfollowOrganization */
export type UnfollowOrganizationInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** ID of the organization to unfollow. */
  organizationId: Scalars['ID'];
};

/** Autogenerated return type of UnfollowOrganization */
export type UnfollowOrganizationPayload = {
  __typename?: 'UnfollowOrganizationPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The organization that was unfollowed. */
  organization?: Maybe<Organization>;
};

/** Autogenerated input type of UnfollowUser */
export type UnfollowUserInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** ID of the user to unfollow. */
  userId: Scalars['ID'];
};

/** Autogenerated return type of UnfollowUser */
export type UnfollowUserPayload = {
  __typename?: 'UnfollowUserPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The user that was unfollowed. */
  user?: Maybe<User>;
};

/** Represents a type that can be retrieved by a URL. */
export type UniformResourceLocatable = {
  /** The HTML path to this resource. */
  resourcePath: Scalars['URI'];
  /** The URL to this resource. */
  url: Scalars['URI'];
};

/** Represents an unknown signature on a Commit or Tag. */
export type UnknownSignature = GitSignature & {
  __typename?: 'UnknownSignature';
  /** Email used to sign this object. */
  email: Scalars['String'];
  /** True if the signature is valid and verified by GitHub. */
  isValid: Scalars['Boolean'];
  /** Payload for GPG signing object. Raw ODB object without the signature header. */
  payload: Scalars['String'];
  /** ASCII-armored signature header from object. */
  signature: Scalars['String'];
  /** GitHub user corresponding to the email signing this commit. */
  signer?: Maybe<User>;
  /**
   * The state of this signature. `VALID` if signature is valid and verified by
   * GitHub, otherwise represents reason why signature is considered invalid.
   */
  state: GitSignatureState;
  /** True if the signature was made with GitHub's signing key. */
  wasSignedByGitHub: Scalars['Boolean'];
};

/** Represents an 'unlabeled' event on a given issue or pull request. */
export type UnlabeledEvent = Node & {
  __typename?: 'UnlabeledEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  id: Scalars['ID'];
  /** Identifies the label associated with the 'unlabeled' event. */
  label: Label;
  /** Identifies the `Labelable` associated with the event. */
  labelable: Discussion | Issue | PullRequest;
};

/** Autogenerated input type of UnlinkProjectV2FromRepository */
export type UnlinkProjectV2FromRepositoryInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the project to unlink from the repository. */
  projectId: Scalars['ID'];
  /** The ID of the repository to unlink from the project. */
  repositoryId: Scalars['ID'];
};

/** Autogenerated return type of UnlinkProjectV2FromRepository */
export type UnlinkProjectV2FromRepositoryPayload = {
  __typename?: 'UnlinkProjectV2FromRepositoryPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The repository the project is no longer linked to. */
  repository?: Maybe<Repository>;
};

/** Autogenerated input type of UnlinkProjectV2FromTeam */
export type UnlinkProjectV2FromTeamInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the project to unlink from the team. */
  projectId: Scalars['ID'];
  /** The ID of the team to unlink from the project. */
  teamId: Scalars['ID'];
};

/** Autogenerated return type of UnlinkProjectV2FromTeam */
export type UnlinkProjectV2FromTeamPayload = {
  __typename?: 'UnlinkProjectV2FromTeamPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The team the project is unlinked from */
  team?: Maybe<Team>;
};

/** Autogenerated input type of UnlinkRepositoryFromProject */
export type UnlinkRepositoryFromProjectInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the Project linked to the Repository. */
  projectId: Scalars['ID'];
  /** The ID of the Repository linked to the Project. */
  repositoryId: Scalars['ID'];
};

/** Autogenerated return type of UnlinkRepositoryFromProject */
export type UnlinkRepositoryFromProjectPayload = {
  __typename?: 'UnlinkRepositoryFromProjectPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The linked Project. */
  project?: Maybe<Project>;
  /** The linked Repository. */
  repository?: Maybe<Repository>;
};

/** Autogenerated input type of UnlockLockable */
export type UnlockLockableInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** ID of the item to be unlocked. */
  lockableId: Scalars['ID'];
};

/** Autogenerated return type of UnlockLockable */
export type UnlockLockablePayload = {
  __typename?: 'UnlockLockablePayload';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The item that was unlocked. */
  unlockedRecord?: Maybe<Discussion | Issue | PullRequest>;
};

/** Represents an 'unlocked' event on a given issue or pull request. */
export type UnlockedEvent = Node & {
  __typename?: 'UnlockedEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  id: Scalars['ID'];
  /** Object that was unlocked. */
  lockable: Discussion | Issue | PullRequest;
};

/** Autogenerated input type of UnmarkDiscussionCommentAsAnswer */
export type UnmarkDiscussionCommentAsAnswerInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The Node ID of the discussion comment to unmark as an answer. */
  id: Scalars['ID'];
};

/** Autogenerated return type of UnmarkDiscussionCommentAsAnswer */
export type UnmarkDiscussionCommentAsAnswerPayload = {
  __typename?: 'UnmarkDiscussionCommentAsAnswerPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The discussion that includes the comment. */
  discussion?: Maybe<Discussion>;
};

/** Autogenerated input type of UnmarkFileAsViewed */
export type UnmarkFileAsViewedInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The path of the file to mark as unviewed */
  path: Scalars['String'];
  /** The Node ID of the pull request. */
  pullRequestId: Scalars['ID'];
};

/** Autogenerated return type of UnmarkFileAsViewed */
export type UnmarkFileAsViewedPayload = {
  __typename?: 'UnmarkFileAsViewedPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The updated pull request. */
  pullRequest?: Maybe<PullRequest>;
};

/** Autogenerated input type of UnmarkIssueAsDuplicate */
export type UnmarkIssueAsDuplicateInput = {
  /** ID of the issue or pull request currently considered canonical/authoritative/original. */
  canonicalId: Scalars['ID'];
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** ID of the issue or pull request currently marked as a duplicate. */
  duplicateId: Scalars['ID'];
};

/** Autogenerated return type of UnmarkIssueAsDuplicate */
export type UnmarkIssueAsDuplicatePayload = {
  __typename?: 'UnmarkIssueAsDuplicatePayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The issue or pull request that was marked as a duplicate. */
  duplicate?: Maybe<IssueOrPullRequest>;
};

/** Represents an 'unmarked_as_duplicate' event on a given issue or pull request. */
export type UnmarkedAsDuplicateEvent = Node & {
  __typename?: 'UnmarkedAsDuplicateEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** The authoritative issue or pull request which has been duplicated by another. */
  canonical?: Maybe<IssueOrPullRequest>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** The issue or pull request which has been marked as a duplicate of another. */
  duplicate?: Maybe<IssueOrPullRequest>;
  id: Scalars['ID'];
  /** Canonical and duplicate belong to different repositories. */
  isCrossRepository: Scalars['Boolean'];
};

/** Autogenerated input type of UnminimizeComment */
export type UnminimizeCommentInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The Node ID of the subject to modify. */
  subjectId: Scalars['ID'];
};

/** Autogenerated return type of UnminimizeComment */
export type UnminimizeCommentPayload = {
  __typename?: 'UnminimizeCommentPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The comment that was unminimized. */
  unminimizedComment?: Maybe<CommitComment | DiscussionComment | GistComment | IssueComment | PullRequestReviewComment>;
};

/** Autogenerated input type of UnpinIssue */
export type UnpinIssueInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the issue to be unpinned */
  issueId: Scalars['ID'];
};

/** Autogenerated return type of UnpinIssue */
export type UnpinIssuePayload = {
  __typename?: 'UnpinIssuePayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The issue that was unpinned */
  issue?: Maybe<Issue>;
};

/** Represents an 'unpinned' event on a given issue or pull request. */
export type UnpinnedEvent = Node & {
  __typename?: 'UnpinnedEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  id: Scalars['ID'];
  /** Identifies the issue associated with the event. */
  issue: Issue;
};

/** Autogenerated input type of UnresolveReviewThread */
export type UnresolveReviewThreadInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the thread to unresolve */
  threadId: Scalars['ID'];
};

/** Autogenerated return type of UnresolveReviewThread */
export type UnresolveReviewThreadPayload = {
  __typename?: 'UnresolveReviewThreadPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The thread to resolve. */
  thread?: Maybe<PullRequestReviewThread>;
};

/** Represents an 'unsubscribed' event on a given `Subscribable`. */
export type UnsubscribedEvent = Node & {
  __typename?: 'UnsubscribedEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  id: Scalars['ID'];
  /** Object referenced by event. */
  subscribable: Commit | Discussion | Issue | PullRequest | Repository | Team | TeamDiscussion;
};

/** Entities that can be updated. */
export type Updatable = {
  /** Check if the current viewer can update this object. */
  viewerCanUpdate: Scalars['Boolean'];
};

/** Comments that can be updated. */
export type UpdatableComment = {
  /** Reasons why the current viewer can not update this comment. */
  viewerCannotUpdateReasons: Array<CommentCannotUpdateReason>;
};

/** Autogenerated input type of UpdateBranchProtectionRule */
export type UpdateBranchProtectionRuleInput = {
  /** Can this branch be deleted. */
  allowsDeletions?: InputMaybe<Scalars['Boolean']>;
  /** Are force pushes allowed on this branch. */
  allowsForcePushes?: InputMaybe<Scalars['Boolean']>;
  /** Is branch creation a protected operation. */
  blocksCreations?: InputMaybe<Scalars['Boolean']>;
  /** The global relay id of the branch protection rule to be updated. */
  branchProtectionRuleId: Scalars['ID'];
  /** A list of User, Team, or App IDs allowed to bypass force push targeting matching branches. */
  bypassForcePushActorIds?: InputMaybe<Array<Scalars['ID']>>;
  /** A list of User, Team, or App IDs allowed to bypass pull requests targeting matching branches. */
  bypassPullRequestActorIds?: InputMaybe<Array<Scalars['ID']>>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** Will new commits pushed to matching branches dismiss pull request review approvals. */
  dismissesStaleReviews?: InputMaybe<Scalars['Boolean']>;
  /** Can admins overwrite branch protection. */
  isAdminEnforced?: InputMaybe<Scalars['Boolean']>;
  /**
   * Whether users can pull changes from upstream when the branch is locked. Set to
   * `true` to allow fork syncing. Set to `false` to prevent fork syncing.
   */
  lockAllowsFetchAndMerge?: InputMaybe<Scalars['Boolean']>;
  /** Whether to set the branch as read-only. If this is true, users will not be able to push to the branch. */
  lockBranch?: InputMaybe<Scalars['Boolean']>;
  /** The glob-like pattern used to determine matching branches. */
  pattern?: InputMaybe<Scalars['String']>;
  /** A list of User, Team, or App IDs allowed to push to matching branches. */
  pushActorIds?: InputMaybe<Array<Scalars['ID']>>;
  /** Whether the most recent push must be approved by someone other than the person who pushed it */
  requireLastPushApproval?: InputMaybe<Scalars['Boolean']>;
  /** Number of approving reviews required to update matching branches. */
  requiredApprovingReviewCount?: InputMaybe<Scalars['Int']>;
  /** The list of required deployment environments */
  requiredDeploymentEnvironments?: InputMaybe<Array<Scalars['String']>>;
  /** List of required status check contexts that must pass for commits to be accepted to matching branches. */
  requiredStatusCheckContexts?: InputMaybe<Array<Scalars['String']>>;
  /** The list of required status checks */
  requiredStatusChecks?: InputMaybe<Array<RequiredStatusCheckInput>>;
  /** Are approving reviews required to update matching branches. */
  requiresApprovingReviews?: InputMaybe<Scalars['Boolean']>;
  /** Are reviews from code owners required to update matching branches. */
  requiresCodeOwnerReviews?: InputMaybe<Scalars['Boolean']>;
  /** Are commits required to be signed. */
  requiresCommitSignatures?: InputMaybe<Scalars['Boolean']>;
  /** Are conversations required to be resolved before merging. */
  requiresConversationResolution?: InputMaybe<Scalars['Boolean']>;
  /** Are successful deployments required before merging. */
  requiresDeployments?: InputMaybe<Scalars['Boolean']>;
  /** Are merge commits prohibited from being pushed to this branch. */
  requiresLinearHistory?: InputMaybe<Scalars['Boolean']>;
  /** Are status checks required to update matching branches. */
  requiresStatusChecks?: InputMaybe<Scalars['Boolean']>;
  /** Are branches required to be up to date before merging. */
  requiresStrictStatusChecks?: InputMaybe<Scalars['Boolean']>;
  /** Is pushing to matching branches restricted. */
  restrictsPushes?: InputMaybe<Scalars['Boolean']>;
  /** Is dismissal of pull request reviews restricted. */
  restrictsReviewDismissals?: InputMaybe<Scalars['Boolean']>;
  /** A list of User, Team, or App IDs allowed to dismiss reviews on pull requests targeting matching branches. */
  reviewDismissalActorIds?: InputMaybe<Array<Scalars['ID']>>;
};

/** Autogenerated return type of UpdateBranchProtectionRule */
export type UpdateBranchProtectionRulePayload = {
  __typename?: 'UpdateBranchProtectionRulePayload';
  /** The newly created BranchProtectionRule. */
  branchProtectionRule?: Maybe<BranchProtectionRule>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
};

/** Autogenerated input type of UpdateCheckRun */
export type UpdateCheckRunInput = {
  /** Possible further actions the integrator can perform, which a user may trigger. */
  actions?: InputMaybe<Array<CheckRunAction>>;
  /** The node of the check. */
  checkRunId: Scalars['ID'];
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The time that the check run finished. */
  completedAt?: InputMaybe<Scalars['DateTime']>;
  /** The final conclusion of the check. */
  conclusion?: InputMaybe<CheckConclusionState>;
  /** The URL of the integrator's site that has the full details of the check. */
  detailsUrl?: InputMaybe<Scalars['URI']>;
  /** A reference for the run on the integrator's system. */
  externalId?: InputMaybe<Scalars['String']>;
  /** The name of the check. */
  name?: InputMaybe<Scalars['String']>;
  /** Descriptive details about the run. */
  output?: InputMaybe<CheckRunOutput>;
  /** The node ID of the repository. */
  repositoryId: Scalars['ID'];
  /** The time that the check run began. */
  startedAt?: InputMaybe<Scalars['DateTime']>;
  /** The current status. */
  status?: InputMaybe<RequestableCheckStatusState>;
};

/** Autogenerated return type of UpdateCheckRun */
export type UpdateCheckRunPayload = {
  __typename?: 'UpdateCheckRunPayload';
  /** The updated check run. */
  checkRun?: Maybe<CheckRun>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
};

/** Autogenerated input type of UpdateCheckSuitePreferences */
export type UpdateCheckSuitePreferencesInput = {
  /** The check suite preferences to modify. */
  autoTriggerPreferences: Array<CheckSuiteAutoTriggerPreference>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The Node ID of the repository. */
  repositoryId: Scalars['ID'];
};

/** Autogenerated return type of UpdateCheckSuitePreferences */
export type UpdateCheckSuitePreferencesPayload = {
  __typename?: 'UpdateCheckSuitePreferencesPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The updated repository. */
  repository?: Maybe<Repository>;
};

/** Autogenerated input type of UpdateDiscussionComment */
export type UpdateDiscussionCommentInput = {
  /** The new contents of the comment body. */
  body: Scalars['String'];
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The Node ID of the discussion comment to update. */
  commentId: Scalars['ID'];
};

/** Autogenerated return type of UpdateDiscussionComment */
export type UpdateDiscussionCommentPayload = {
  __typename?: 'UpdateDiscussionCommentPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The modified discussion comment. */
  comment?: Maybe<DiscussionComment>;
};

/** Autogenerated input type of UpdateDiscussion */
export type UpdateDiscussionInput = {
  /** The new contents of the discussion body. */
  body?: InputMaybe<Scalars['String']>;
  /** The Node ID of a discussion category within the same repository to change this discussion to. */
  categoryId?: InputMaybe<Scalars['ID']>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The Node ID of the discussion to update. */
  discussionId: Scalars['ID'];
  /** The new discussion title. */
  title?: InputMaybe<Scalars['String']>;
};

/** Autogenerated return type of UpdateDiscussion */
export type UpdateDiscussionPayload = {
  __typename?: 'UpdateDiscussionPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The modified discussion. */
  discussion?: Maybe<Discussion>;
};

/** Autogenerated input type of UpdateEnterpriseAdministratorRole */
export type UpdateEnterpriseAdministratorRoleInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the Enterprise which the admin belongs to. */
  enterpriseId: Scalars['ID'];
  /** The login of a administrator whose role is being changed. */
  login: Scalars['String'];
  /** The new role for the Enterprise administrator. */
  role: EnterpriseAdministratorRole;
};

/** Autogenerated return type of UpdateEnterpriseAdministratorRole */
export type UpdateEnterpriseAdministratorRolePayload = {
  __typename?: 'UpdateEnterpriseAdministratorRolePayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** A message confirming the result of changing the administrator's role. */
  message?: Maybe<Scalars['String']>;
};

/** Autogenerated input type of UpdateEnterpriseAllowPrivateRepositoryForkingSetting */
export type UpdateEnterpriseAllowPrivateRepositoryForkingSettingInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the enterprise on which to set the allow private repository forking setting. */
  enterpriseId: Scalars['ID'];
  /** The value for the allow private repository forking policy on the enterprise. */
  policyValue?: InputMaybe<EnterpriseAllowPrivateRepositoryForkingPolicyValue>;
  /** The value for the allow private repository forking setting on the enterprise. */
  settingValue: EnterpriseEnabledDisabledSettingValue;
};

/** Autogenerated return type of UpdateEnterpriseAllowPrivateRepositoryForkingSetting */
export type UpdateEnterpriseAllowPrivateRepositoryForkingSettingPayload = {
  __typename?: 'UpdateEnterpriseAllowPrivateRepositoryForkingSettingPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The enterprise with the updated allow private repository forking setting. */
  enterprise?: Maybe<Enterprise>;
  /** A message confirming the result of updating the allow private repository forking setting. */
  message?: Maybe<Scalars['String']>;
};

/** Autogenerated input type of UpdateEnterpriseDefaultRepositoryPermissionSetting */
export type UpdateEnterpriseDefaultRepositoryPermissionSettingInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the enterprise on which to set the base repository permission setting. */
  enterpriseId: Scalars['ID'];
  /** The value for the base repository permission setting on the enterprise. */
  settingValue: EnterpriseDefaultRepositoryPermissionSettingValue;
};

/** Autogenerated return type of UpdateEnterpriseDefaultRepositoryPermissionSetting */
export type UpdateEnterpriseDefaultRepositoryPermissionSettingPayload = {
  __typename?: 'UpdateEnterpriseDefaultRepositoryPermissionSettingPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The enterprise with the updated base repository permission setting. */
  enterprise?: Maybe<Enterprise>;
  /** A message confirming the result of updating the base repository permission setting. */
  message?: Maybe<Scalars['String']>;
};

/** Autogenerated input type of UpdateEnterpriseMembersCanChangeRepositoryVisibilitySetting */
export type UpdateEnterpriseMembersCanChangeRepositoryVisibilitySettingInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the enterprise on which to set the members can change repository visibility setting. */
  enterpriseId: Scalars['ID'];
  /** The value for the members can change repository visibility setting on the enterprise. */
  settingValue: EnterpriseEnabledDisabledSettingValue;
};

/** Autogenerated return type of UpdateEnterpriseMembersCanChangeRepositoryVisibilitySetting */
export type UpdateEnterpriseMembersCanChangeRepositoryVisibilitySettingPayload = {
  __typename?: 'UpdateEnterpriseMembersCanChangeRepositoryVisibilitySettingPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The enterprise with the updated members can change repository visibility setting. */
  enterprise?: Maybe<Enterprise>;
  /** A message confirming the result of updating the members can change repository visibility setting. */
  message?: Maybe<Scalars['String']>;
};

/** Autogenerated input type of UpdateEnterpriseMembersCanCreateRepositoriesSetting */
export type UpdateEnterpriseMembersCanCreateRepositoriesSettingInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the enterprise on which to set the members can create repositories setting. */
  enterpriseId: Scalars['ID'];
  /** Allow members to create internal repositories. Defaults to current value. */
  membersCanCreateInternalRepositories?: InputMaybe<Scalars['Boolean']>;
  /** Allow members to create private repositories. Defaults to current value. */
  membersCanCreatePrivateRepositories?: InputMaybe<Scalars['Boolean']>;
  /** Allow members to create public repositories. Defaults to current value. */
  membersCanCreatePublicRepositories?: InputMaybe<Scalars['Boolean']>;
  /** When false, allow member organizations to set their own repository creation member privileges. */
  membersCanCreateRepositoriesPolicyEnabled?: InputMaybe<Scalars['Boolean']>;
  /**
   * Value for the members can create repositories setting on the enterprise. This
   * or the granular public/private/internal allowed fields (but not both) must be provided.
   */
  settingValue?: InputMaybe<EnterpriseMembersCanCreateRepositoriesSettingValue>;
};

/** Autogenerated return type of UpdateEnterpriseMembersCanCreateRepositoriesSetting */
export type UpdateEnterpriseMembersCanCreateRepositoriesSettingPayload = {
  __typename?: 'UpdateEnterpriseMembersCanCreateRepositoriesSettingPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The enterprise with the updated members can create repositories setting. */
  enterprise?: Maybe<Enterprise>;
  /** A message confirming the result of updating the members can create repositories setting. */
  message?: Maybe<Scalars['String']>;
};

/** Autogenerated input type of UpdateEnterpriseMembersCanDeleteIssuesSetting */
export type UpdateEnterpriseMembersCanDeleteIssuesSettingInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the enterprise on which to set the members can delete issues setting. */
  enterpriseId: Scalars['ID'];
  /** The value for the members can delete issues setting on the enterprise. */
  settingValue: EnterpriseEnabledDisabledSettingValue;
};

/** Autogenerated return type of UpdateEnterpriseMembersCanDeleteIssuesSetting */
export type UpdateEnterpriseMembersCanDeleteIssuesSettingPayload = {
  __typename?: 'UpdateEnterpriseMembersCanDeleteIssuesSettingPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The enterprise with the updated members can delete issues setting. */
  enterprise?: Maybe<Enterprise>;
  /** A message confirming the result of updating the members can delete issues setting. */
  message?: Maybe<Scalars['String']>;
};

/** Autogenerated input type of UpdateEnterpriseMembersCanDeleteRepositoriesSetting */
export type UpdateEnterpriseMembersCanDeleteRepositoriesSettingInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the enterprise on which to set the members can delete repositories setting. */
  enterpriseId: Scalars['ID'];
  /** The value for the members can delete repositories setting on the enterprise. */
  settingValue: EnterpriseEnabledDisabledSettingValue;
};

/** Autogenerated return type of UpdateEnterpriseMembersCanDeleteRepositoriesSetting */
export type UpdateEnterpriseMembersCanDeleteRepositoriesSettingPayload = {
  __typename?: 'UpdateEnterpriseMembersCanDeleteRepositoriesSettingPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The enterprise with the updated members can delete repositories setting. */
  enterprise?: Maybe<Enterprise>;
  /** A message confirming the result of updating the members can delete repositories setting. */
  message?: Maybe<Scalars['String']>;
};

/** Autogenerated input type of UpdateEnterpriseMembersCanInviteCollaboratorsSetting */
export type UpdateEnterpriseMembersCanInviteCollaboratorsSettingInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the enterprise on which to set the members can invite collaborators setting. */
  enterpriseId: Scalars['ID'];
  /** The value for the members can invite collaborators setting on the enterprise. */
  settingValue: EnterpriseEnabledDisabledSettingValue;
};

/** Autogenerated return type of UpdateEnterpriseMembersCanInviteCollaboratorsSetting */
export type UpdateEnterpriseMembersCanInviteCollaboratorsSettingPayload = {
  __typename?: 'UpdateEnterpriseMembersCanInviteCollaboratorsSettingPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The enterprise with the updated members can invite collaborators setting. */
  enterprise?: Maybe<Enterprise>;
  /** A message confirming the result of updating the members can invite collaborators setting. */
  message?: Maybe<Scalars['String']>;
};

/** Autogenerated input type of UpdateEnterpriseMembersCanMakePurchasesSetting */
export type UpdateEnterpriseMembersCanMakePurchasesSettingInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the enterprise on which to set the members can make purchases setting. */
  enterpriseId: Scalars['ID'];
  /** The value for the members can make purchases setting on the enterprise. */
  settingValue: EnterpriseMembersCanMakePurchasesSettingValue;
};

/** Autogenerated return type of UpdateEnterpriseMembersCanMakePurchasesSetting */
export type UpdateEnterpriseMembersCanMakePurchasesSettingPayload = {
  __typename?: 'UpdateEnterpriseMembersCanMakePurchasesSettingPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The enterprise with the updated members can make purchases setting. */
  enterprise?: Maybe<Enterprise>;
  /** A message confirming the result of updating the members can make purchases setting. */
  message?: Maybe<Scalars['String']>;
};

/** Autogenerated input type of UpdateEnterpriseMembersCanUpdateProtectedBranchesSetting */
export type UpdateEnterpriseMembersCanUpdateProtectedBranchesSettingInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the enterprise on which to set the members can update protected branches setting. */
  enterpriseId: Scalars['ID'];
  /** The value for the members can update protected branches setting on the enterprise. */
  settingValue: EnterpriseEnabledDisabledSettingValue;
};

/** Autogenerated return type of UpdateEnterpriseMembersCanUpdateProtectedBranchesSetting */
export type UpdateEnterpriseMembersCanUpdateProtectedBranchesSettingPayload = {
  __typename?: 'UpdateEnterpriseMembersCanUpdateProtectedBranchesSettingPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The enterprise with the updated members can update protected branches setting. */
  enterprise?: Maybe<Enterprise>;
  /** A message confirming the result of updating the members can update protected branches setting. */
  message?: Maybe<Scalars['String']>;
};

/** Autogenerated input type of UpdateEnterpriseMembersCanViewDependencyInsightsSetting */
export type UpdateEnterpriseMembersCanViewDependencyInsightsSettingInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the enterprise on which to set the members can view dependency insights setting. */
  enterpriseId: Scalars['ID'];
  /** The value for the members can view dependency insights setting on the enterprise. */
  settingValue: EnterpriseEnabledDisabledSettingValue;
};

/** Autogenerated return type of UpdateEnterpriseMembersCanViewDependencyInsightsSetting */
export type UpdateEnterpriseMembersCanViewDependencyInsightsSettingPayload = {
  __typename?: 'UpdateEnterpriseMembersCanViewDependencyInsightsSettingPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The enterprise with the updated members can view dependency insights setting. */
  enterprise?: Maybe<Enterprise>;
  /** A message confirming the result of updating the members can view dependency insights setting. */
  message?: Maybe<Scalars['String']>;
};

/** Autogenerated input type of UpdateEnterpriseOrganizationProjectsSetting */
export type UpdateEnterpriseOrganizationProjectsSettingInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the enterprise on which to set the organization projects setting. */
  enterpriseId: Scalars['ID'];
  /** The value for the organization projects setting on the enterprise. */
  settingValue: EnterpriseEnabledDisabledSettingValue;
};

/** Autogenerated return type of UpdateEnterpriseOrganizationProjectsSetting */
export type UpdateEnterpriseOrganizationProjectsSettingPayload = {
  __typename?: 'UpdateEnterpriseOrganizationProjectsSettingPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The enterprise with the updated organization projects setting. */
  enterprise?: Maybe<Enterprise>;
  /** A message confirming the result of updating the organization projects setting. */
  message?: Maybe<Scalars['String']>;
};

/** Autogenerated input type of UpdateEnterpriseOwnerOrganizationRole */
export type UpdateEnterpriseOwnerOrganizationRoleInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the Enterprise which the owner belongs to. */
  enterpriseId: Scalars['ID'];
  /** The ID of the organization for membership change. */
  organizationId: Scalars['ID'];
  /** The role to assume in the organization. */
  organizationRole: RoleInOrganization;
};

/** Autogenerated return type of UpdateEnterpriseOwnerOrganizationRole */
export type UpdateEnterpriseOwnerOrganizationRolePayload = {
  __typename?: 'UpdateEnterpriseOwnerOrganizationRolePayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** A message confirming the result of changing the owner's organization role. */
  message?: Maybe<Scalars['String']>;
};

/** Autogenerated input type of UpdateEnterpriseProfile */
export type UpdateEnterpriseProfileInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The description of the enterprise. */
  description?: InputMaybe<Scalars['String']>;
  /** The Enterprise ID to update. */
  enterpriseId: Scalars['ID'];
  /** The location of the enterprise. */
  location?: InputMaybe<Scalars['String']>;
  /** The name of the enterprise. */
  name?: InputMaybe<Scalars['String']>;
  /** The URL of the enterprise's website. */
  websiteUrl?: InputMaybe<Scalars['String']>;
};

/** Autogenerated return type of UpdateEnterpriseProfile */
export type UpdateEnterpriseProfilePayload = {
  __typename?: 'UpdateEnterpriseProfilePayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The updated enterprise. */
  enterprise?: Maybe<Enterprise>;
};

/** Autogenerated input type of UpdateEnterpriseRepositoryProjectsSetting */
export type UpdateEnterpriseRepositoryProjectsSettingInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the enterprise on which to set the repository projects setting. */
  enterpriseId: Scalars['ID'];
  /** The value for the repository projects setting on the enterprise. */
  settingValue: EnterpriseEnabledDisabledSettingValue;
};

/** Autogenerated return type of UpdateEnterpriseRepositoryProjectsSetting */
export type UpdateEnterpriseRepositoryProjectsSettingPayload = {
  __typename?: 'UpdateEnterpriseRepositoryProjectsSettingPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The enterprise with the updated repository projects setting. */
  enterprise?: Maybe<Enterprise>;
  /** A message confirming the result of updating the repository projects setting. */
  message?: Maybe<Scalars['String']>;
};

/** Autogenerated input type of UpdateEnterpriseTeamDiscussionsSetting */
export type UpdateEnterpriseTeamDiscussionsSettingInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the enterprise on which to set the team discussions setting. */
  enterpriseId: Scalars['ID'];
  /** The value for the team discussions setting on the enterprise. */
  settingValue: EnterpriseEnabledDisabledSettingValue;
};

/** Autogenerated return type of UpdateEnterpriseTeamDiscussionsSetting */
export type UpdateEnterpriseTeamDiscussionsSettingPayload = {
  __typename?: 'UpdateEnterpriseTeamDiscussionsSettingPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The enterprise with the updated team discussions setting. */
  enterprise?: Maybe<Enterprise>;
  /** A message confirming the result of updating the team discussions setting. */
  message?: Maybe<Scalars['String']>;
};

/** Autogenerated input type of UpdateEnterpriseTwoFactorAuthenticationRequiredSetting */
export type UpdateEnterpriseTwoFactorAuthenticationRequiredSettingInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the enterprise on which to set the two factor authentication required setting. */
  enterpriseId: Scalars['ID'];
  /** The value for the two factor authentication required setting on the enterprise. */
  settingValue: EnterpriseEnabledSettingValue;
};

/** Autogenerated return type of UpdateEnterpriseTwoFactorAuthenticationRequiredSetting */
export type UpdateEnterpriseTwoFactorAuthenticationRequiredSettingPayload = {
  __typename?: 'UpdateEnterpriseTwoFactorAuthenticationRequiredSettingPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The enterprise with the updated two factor authentication required setting. */
  enterprise?: Maybe<Enterprise>;
  /** A message confirming the result of updating the two factor authentication required setting. */
  message?: Maybe<Scalars['String']>;
};

/** Autogenerated input type of UpdateEnvironment */
export type UpdateEnvironmentInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The node ID of the environment. */
  environmentId: Scalars['ID'];
  /** The ids of users or teams that can approve deployments to this environment */
  reviewers?: InputMaybe<Array<Scalars['ID']>>;
  /** The wait timer in minutes. */
  waitTimer?: InputMaybe<Scalars['Int']>;
};

/** Autogenerated return type of UpdateEnvironment */
export type UpdateEnvironmentPayload = {
  __typename?: 'UpdateEnvironmentPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The updated environment. */
  environment?: Maybe<Environment>;
};

/** Autogenerated input type of UpdateIpAllowListEnabledSetting */
export type UpdateIpAllowListEnabledSettingInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the owner on which to set the IP allow list enabled setting. */
  ownerId: Scalars['ID'];
  /** The value for the IP allow list enabled setting. */
  settingValue: IpAllowListEnabledSettingValue;
};

/** Autogenerated return type of UpdateIpAllowListEnabledSetting */
export type UpdateIpAllowListEnabledSettingPayload = {
  __typename?: 'UpdateIpAllowListEnabledSettingPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The IP allow list owner on which the setting was updated. */
  owner?: Maybe<IpAllowListOwner>;
};

/** Autogenerated input type of UpdateIpAllowListEntry */
export type UpdateIpAllowListEntryInput = {
  /** An IP address or range of addresses in CIDR notation. */
  allowListValue: Scalars['String'];
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the IP allow list entry to update. */
  ipAllowListEntryId: Scalars['ID'];
  /** Whether the IP allow list entry is active when an IP allow list is enabled. */
  isActive: Scalars['Boolean'];
  /** An optional name for the IP allow list entry. */
  name?: InputMaybe<Scalars['String']>;
};

/** Autogenerated return type of UpdateIpAllowListEntry */
export type UpdateIpAllowListEntryPayload = {
  __typename?: 'UpdateIpAllowListEntryPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The IP allow list entry that was updated. */
  ipAllowListEntry?: Maybe<IpAllowListEntry>;
};

/** Autogenerated input type of UpdateIpAllowListForInstalledAppsEnabledSetting */
export type UpdateIpAllowListForInstalledAppsEnabledSettingInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the owner. */
  ownerId: Scalars['ID'];
  /** The value for the IP allow list configuration for installed GitHub Apps setting. */
  settingValue: IpAllowListForInstalledAppsEnabledSettingValue;
};

/** Autogenerated return type of UpdateIpAllowListForInstalledAppsEnabledSetting */
export type UpdateIpAllowListForInstalledAppsEnabledSettingPayload = {
  __typename?: 'UpdateIpAllowListForInstalledAppsEnabledSettingPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The IP allow list owner on which the setting was updated. */
  owner?: Maybe<IpAllowListOwner>;
};

/** Autogenerated input type of UpdateIssueComment */
export type UpdateIssueCommentInput = {
  /** The updated text of the comment. */
  body: Scalars['String'];
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the IssueComment to modify. */
  id: Scalars['ID'];
};

/** Autogenerated return type of UpdateIssueComment */
export type UpdateIssueCommentPayload = {
  __typename?: 'UpdateIssueCommentPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The updated comment. */
  issueComment?: Maybe<IssueComment>;
};

/** Autogenerated input type of UpdateIssue */
export type UpdateIssueInput = {
  /** An array of Node IDs of users for this issue. */
  assigneeIds?: InputMaybe<Array<Scalars['ID']>>;
  /** The body for the issue description. */
  body?: InputMaybe<Scalars['String']>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the Issue to modify. */
  id: Scalars['ID'];
  /** An array of Node IDs of labels for this issue. */
  labelIds?: InputMaybe<Array<Scalars['ID']>>;
  /** The Node ID of the milestone for this issue. */
  milestoneId?: InputMaybe<Scalars['ID']>;
  /** An array of Node IDs for projects associated with this issue. */
  projectIds?: InputMaybe<Array<Scalars['ID']>>;
  /** The desired issue state. */
  state?: InputMaybe<IssueState>;
  /** The title for the issue. */
  title?: InputMaybe<Scalars['String']>;
};

/** Autogenerated return type of UpdateIssue */
export type UpdateIssuePayload = {
  __typename?: 'UpdateIssuePayload';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The issue. */
  issue?: Maybe<Issue>;
};

/** Autogenerated input type of UpdateNotificationRestrictionSetting */
export type UpdateNotificationRestrictionSettingInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the owner on which to set the restrict notifications setting. */
  ownerId: Scalars['ID'];
  /** The value for the restrict notifications setting. */
  settingValue: NotificationRestrictionSettingValue;
};

/** Autogenerated return type of UpdateNotificationRestrictionSetting */
export type UpdateNotificationRestrictionSettingPayload = {
  __typename?: 'UpdateNotificationRestrictionSettingPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The owner on which the setting was updated. */
  owner?: Maybe<VerifiableDomainOwner>;
};

/** Autogenerated input type of UpdateOrganizationAllowPrivateRepositoryForkingSetting */
export type UpdateOrganizationAllowPrivateRepositoryForkingSettingInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** Enable forking of private repositories in the organization? */
  forkingEnabled: Scalars['Boolean'];
  /** The ID of the organization on which to set the allow private repository forking setting. */
  organizationId: Scalars['ID'];
};

/** Autogenerated return type of UpdateOrganizationAllowPrivateRepositoryForkingSetting */
export type UpdateOrganizationAllowPrivateRepositoryForkingSettingPayload = {
  __typename?: 'UpdateOrganizationAllowPrivateRepositoryForkingSettingPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** A message confirming the result of updating the allow private repository forking setting. */
  message?: Maybe<Scalars['String']>;
  /** The organization with the updated allow private repository forking setting. */
  organization?: Maybe<Organization>;
};

/** Autogenerated input type of UpdateOrganizationWebCommitSignoffSetting */
export type UpdateOrganizationWebCommitSignoffSettingInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the organization on which to set the web commit signoff setting. */
  organizationId: Scalars['ID'];
  /** Enable signoff on web-based commits for repositories in the organization? */
  webCommitSignoffRequired: Scalars['Boolean'];
};

/** Autogenerated return type of UpdateOrganizationWebCommitSignoffSetting */
export type UpdateOrganizationWebCommitSignoffSettingPayload = {
  __typename?: 'UpdateOrganizationWebCommitSignoffSettingPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** A message confirming the result of updating the web commit signoff setting. */
  message?: Maybe<Scalars['String']>;
  /** The organization with the updated web commit signoff setting. */
  organization?: Maybe<Organization>;
};

/** Autogenerated input type of UpdateProjectCard */
export type UpdateProjectCardInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** Whether or not the ProjectCard should be archived */
  isArchived?: InputMaybe<Scalars['Boolean']>;
  /** The note of ProjectCard. */
  note?: InputMaybe<Scalars['String']>;
  /** The ProjectCard ID to update. */
  projectCardId: Scalars['ID'];
};

/** Autogenerated return type of UpdateProjectCard */
export type UpdateProjectCardPayload = {
  __typename?: 'UpdateProjectCardPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The updated ProjectCard. */
  projectCard?: Maybe<ProjectCard>;
};

/** Autogenerated input type of UpdateProjectColumn */
export type UpdateProjectColumnInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The name of project column. */
  name: Scalars['String'];
  /** The ProjectColumn ID to update. */
  projectColumnId: Scalars['ID'];
};

/** Autogenerated return type of UpdateProjectColumn */
export type UpdateProjectColumnPayload = {
  __typename?: 'UpdateProjectColumnPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The updated project column. */
  projectColumn?: Maybe<ProjectColumn>;
};

/** Autogenerated input type of UpdateProject */
export type UpdateProjectInput = {
  /** The description of project. */
  body?: InputMaybe<Scalars['String']>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The name of project. */
  name?: InputMaybe<Scalars['String']>;
  /** The Project ID to update. */
  projectId: Scalars['ID'];
  /** Whether the project is public or not. */
  public?: InputMaybe<Scalars['Boolean']>;
  /** Whether the project is open or closed. */
  state?: InputMaybe<ProjectState>;
};

/** Autogenerated return type of UpdateProject */
export type UpdateProjectPayload = {
  __typename?: 'UpdateProjectPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The updated project. */
  project?: Maybe<Project>;
};

/** Autogenerated input type of UpdateProjectV2DraftIssue */
export type UpdateProjectV2DraftIssueInput = {
  /** The IDs of the assignees of the draft issue. */
  assigneeIds?: InputMaybe<Array<Scalars['ID']>>;
  /** The body of the draft issue. */
  body?: InputMaybe<Scalars['String']>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the draft issue to update. */
  draftIssueId: Scalars['ID'];
  /** The title of the draft issue. */
  title?: InputMaybe<Scalars['String']>;
};

/** Autogenerated return type of UpdateProjectV2DraftIssue */
export type UpdateProjectV2DraftIssuePayload = {
  __typename?: 'UpdateProjectV2DraftIssuePayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The draft issue updated in the project. */
  draftIssue?: Maybe<DraftIssue>;
};

/** Autogenerated input type of UpdateProjectV2 */
export type UpdateProjectV2Input = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** Set the project to closed or open. */
  closed?: InputMaybe<Scalars['Boolean']>;
  /** The ID of the Project to update. */
  projectId: Scalars['ID'];
  /** Set the project to public or private. */
  public?: InputMaybe<Scalars['Boolean']>;
  /** Set the readme description of the project. */
  readme?: InputMaybe<Scalars['String']>;
  /** Set the short description of the project. */
  shortDescription?: InputMaybe<Scalars['String']>;
  /** Set the title of the project. */
  title?: InputMaybe<Scalars['String']>;
};

/** Autogenerated input type of UpdateProjectV2ItemFieldValue */
export type UpdateProjectV2ItemFieldValueInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the field to be updated. */
  fieldId: Scalars['ID'];
  /** The ID of the item to be updated. */
  itemId: Scalars['ID'];
  /** The ID of the Project. */
  projectId: Scalars['ID'];
  /** The value which will be set on the field. */
  value: ProjectV2FieldValue;
};

/** Autogenerated return type of UpdateProjectV2ItemFieldValue */
export type UpdateProjectV2ItemFieldValuePayload = {
  __typename?: 'UpdateProjectV2ItemFieldValuePayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The updated item. */
  projectV2Item?: Maybe<ProjectV2Item>;
};

/** Autogenerated input type of UpdateProjectV2ItemPosition */
export type UpdateProjectV2ItemPositionInput = {
  /** The ID of the item to position this item after. If omitted or set to null the item will be moved to top. */
  afterId?: InputMaybe<Scalars['ID']>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the item to be moved. */
  itemId: Scalars['ID'];
  /** The ID of the Project. */
  projectId: Scalars['ID'];
};

/** Autogenerated return type of UpdateProjectV2ItemPosition */
export type UpdateProjectV2ItemPositionPayload = {
  __typename?: 'UpdateProjectV2ItemPositionPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The items in the new order */
  items?: Maybe<ProjectV2ItemConnection>;
};


/** Autogenerated return type of UpdateProjectV2ItemPosition */
export type UpdateProjectV2ItemPositionPayloadItemsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};

/** Autogenerated return type of UpdateProjectV2 */
export type UpdateProjectV2Payload = {
  __typename?: 'UpdateProjectV2Payload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The updated Project. */
  projectV2?: Maybe<ProjectV2>;
};

/** Autogenerated input type of UpdatePullRequestBranch */
export type UpdatePullRequestBranchInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The head ref oid for the upstream branch. */
  expectedHeadOid?: InputMaybe<Scalars['GitObjectID']>;
  /** The Node ID of the pull request. */
  pullRequestId: Scalars['ID'];
};

/** Autogenerated return type of UpdatePullRequestBranch */
export type UpdatePullRequestBranchPayload = {
  __typename?: 'UpdatePullRequestBranchPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The updated pull request. */
  pullRequest?: Maybe<PullRequest>;
};

/** Autogenerated input type of UpdatePullRequest */
export type UpdatePullRequestInput = {
  /** An array of Node IDs of users for this pull request. */
  assigneeIds?: InputMaybe<Array<Scalars['ID']>>;
  /**
   * The name of the branch you want your changes pulled into. This should be an existing branch
   * on the current repository.
   */
  baseRefName?: InputMaybe<Scalars['String']>;
  /** The contents of the pull request. */
  body?: InputMaybe<Scalars['String']>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** An array of Node IDs of labels for this pull request. */
  labelIds?: InputMaybe<Array<Scalars['ID']>>;
  /** Indicates whether maintainers can modify the pull request. */
  maintainerCanModify?: InputMaybe<Scalars['Boolean']>;
  /** The Node ID of the milestone for this pull request. */
  milestoneId?: InputMaybe<Scalars['ID']>;
  /** An array of Node IDs for projects associated with this pull request. */
  projectIds?: InputMaybe<Array<Scalars['ID']>>;
  /** The Node ID of the pull request. */
  pullRequestId: Scalars['ID'];
  /** The target state of the pull request. */
  state?: InputMaybe<PullRequestUpdateState>;
  /** The title of the pull request. */
  title?: InputMaybe<Scalars['String']>;
};

/** Autogenerated return type of UpdatePullRequest */
export type UpdatePullRequestPayload = {
  __typename?: 'UpdatePullRequestPayload';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The updated pull request. */
  pullRequest?: Maybe<PullRequest>;
};

/** Autogenerated input type of UpdatePullRequestReviewComment */
export type UpdatePullRequestReviewCommentInput = {
  /** The text of the comment. */
  body: Scalars['String'];
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The Node ID of the comment to modify. */
  pullRequestReviewCommentId: Scalars['ID'];
};

/** Autogenerated return type of UpdatePullRequestReviewComment */
export type UpdatePullRequestReviewCommentPayload = {
  __typename?: 'UpdatePullRequestReviewCommentPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The updated comment. */
  pullRequestReviewComment?: Maybe<PullRequestReviewComment>;
};

/** Autogenerated input type of UpdatePullRequestReview */
export type UpdatePullRequestReviewInput = {
  /** The contents of the pull request review body. */
  body: Scalars['String'];
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The Node ID of the pull request review to modify. */
  pullRequestReviewId: Scalars['ID'];
};

/** Autogenerated return type of UpdatePullRequestReview */
export type UpdatePullRequestReviewPayload = {
  __typename?: 'UpdatePullRequestReviewPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The updated pull request review. */
  pullRequestReview?: Maybe<PullRequestReview>;
};

/** Autogenerated input type of UpdateRef */
export type UpdateRefInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** Permit updates of branch Refs that are not fast-forwards? */
  force?: InputMaybe<Scalars['Boolean']>;
  /** The GitObjectID that the Ref shall be updated to target. */
  oid: Scalars['GitObjectID'];
  /** The Node ID of the Ref to be updated. */
  refId: Scalars['ID'];
};

/** Autogenerated return type of UpdateRef */
export type UpdateRefPayload = {
  __typename?: 'UpdateRefPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The updated Ref. */
  ref?: Maybe<Ref>;
};

/** Autogenerated input type of UpdateRepository */
export type UpdateRepositoryInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** A new description for the repository. Pass an empty string to erase the existing description. */
  description?: InputMaybe<Scalars['String']>;
  /** Indicates if the repository should have the discussions feature enabled. */
  hasDiscussionsEnabled?: InputMaybe<Scalars['Boolean']>;
  /** Indicates if the repository should have the issues feature enabled. */
  hasIssuesEnabled?: InputMaybe<Scalars['Boolean']>;
  /** Indicates if the repository should have the project boards feature enabled. */
  hasProjectsEnabled?: InputMaybe<Scalars['Boolean']>;
  /** Indicates if the repository should have the wiki feature enabled. */
  hasWikiEnabled?: InputMaybe<Scalars['Boolean']>;
  /** The URL for a web page about this repository. Pass an empty string to erase the existing URL. */
  homepageUrl?: InputMaybe<Scalars['URI']>;
  /** The new name of the repository. */
  name?: InputMaybe<Scalars['String']>;
  /** The ID of the repository to update. */
  repositoryId: Scalars['ID'];
  /**
   * Whether this repository should be marked as a template such that anyone who
   * can access it can create new repositories with the same files and directory structure.
   */
  template?: InputMaybe<Scalars['Boolean']>;
};

/** Autogenerated return type of UpdateRepository */
export type UpdateRepositoryPayload = {
  __typename?: 'UpdateRepositoryPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The updated repository. */
  repository?: Maybe<Repository>;
};

/** Autogenerated input type of UpdateRepositoryWebCommitSignoffSetting */
export type UpdateRepositoryWebCommitSignoffSettingInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the repository to update. */
  repositoryId: Scalars['ID'];
  /** Indicates if the repository should require signoff on web-based commits. */
  webCommitSignoffRequired: Scalars['Boolean'];
};

/** Autogenerated return type of UpdateRepositoryWebCommitSignoffSetting */
export type UpdateRepositoryWebCommitSignoffSettingPayload = {
  __typename?: 'UpdateRepositoryWebCommitSignoffSettingPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** A message confirming the result of updating the web commit signoff setting. */
  message?: Maybe<Scalars['String']>;
  /** The updated repository. */
  repository?: Maybe<Repository>;
};

/** Autogenerated input type of UpdateSponsorshipPreferences */
export type UpdateSponsorshipPreferencesInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /**
   * Specify whether others should be able to see that the sponsor is sponsoring
   * the sponsorable. Public visibility still does not reveal which tier is used.
   */
  privacyLevel?: InputMaybe<SponsorshipPrivacy>;
  /** Whether the sponsor should receive email updates from the sponsorable. */
  receiveEmails?: InputMaybe<Scalars['Boolean']>;
  /**
   * The ID of the user or organization who is acting as the sponsor, paying for
   * the sponsorship. Required if sponsorLogin is not given.
   */
  sponsorId?: InputMaybe<Scalars['ID']>;
  /**
   * The username of the user or organization who is acting as the sponsor, paying
   * for the sponsorship. Required if sponsorId is not given.
   */
  sponsorLogin?: InputMaybe<Scalars['String']>;
  /** The ID of the user or organization who is receiving the sponsorship. Required if sponsorableLogin is not given. */
  sponsorableId?: InputMaybe<Scalars['ID']>;
  /** The username of the user or organization who is receiving the sponsorship. Required if sponsorableId is not given. */
  sponsorableLogin?: InputMaybe<Scalars['String']>;
};

/** Autogenerated return type of UpdateSponsorshipPreferences */
export type UpdateSponsorshipPreferencesPayload = {
  __typename?: 'UpdateSponsorshipPreferencesPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The sponsorship that was updated. */
  sponsorship?: Maybe<Sponsorship>;
};

/** Autogenerated input type of UpdateSubscription */
export type UpdateSubscriptionInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The new state of the subscription. */
  state: SubscriptionState;
  /** The Node ID of the subscribable object to modify. */
  subscribableId: Scalars['ID'];
};

/** Autogenerated return type of UpdateSubscription */
export type UpdateSubscriptionPayload = {
  __typename?: 'UpdateSubscriptionPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The input subscribable entity. */
  subscribable?: Maybe<Commit | Discussion | Issue | PullRequest | Repository | Team | TeamDiscussion>;
};

/** Autogenerated input type of UpdateTeamDiscussionComment */
export type UpdateTeamDiscussionCommentInput = {
  /** The updated text of the comment. */
  body: Scalars['String'];
  /** The current version of the body content. */
  bodyVersion?: InputMaybe<Scalars['String']>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the comment to modify. */
  id: Scalars['ID'];
};

/** Autogenerated return type of UpdateTeamDiscussionComment */
export type UpdateTeamDiscussionCommentPayload = {
  __typename?: 'UpdateTeamDiscussionCommentPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The updated comment. */
  teamDiscussionComment?: Maybe<TeamDiscussionComment>;
};

/** Autogenerated input type of UpdateTeamDiscussion */
export type UpdateTeamDiscussionInput = {
  /** The updated text of the discussion. */
  body?: InputMaybe<Scalars['String']>;
  /**
   * The current version of the body content. If provided, this update operation
   * will be rejected if the given version does not match the latest version on the server.
   */
  bodyVersion?: InputMaybe<Scalars['String']>;
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The Node ID of the discussion to modify. */
  id: Scalars['ID'];
  /** If provided, sets the pinned state of the updated discussion. */
  pinned?: InputMaybe<Scalars['Boolean']>;
  /** The updated title of the discussion. */
  title?: InputMaybe<Scalars['String']>;
};

/** Autogenerated return type of UpdateTeamDiscussion */
export type UpdateTeamDiscussionPayload = {
  __typename?: 'UpdateTeamDiscussionPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The updated discussion. */
  teamDiscussion?: Maybe<TeamDiscussion>;
};

/** Autogenerated input type of UpdateTeamsRepository */
export type UpdateTeamsRepositoryInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** Permission that should be granted to the teams. */
  permission: RepositoryPermission;
  /** Repository ID being granted access to. */
  repositoryId: Scalars['ID'];
  /** A list of teams being granted access. Limit: 10 */
  teamIds: Array<Scalars['ID']>;
};

/** Autogenerated return type of UpdateTeamsRepository */
export type UpdateTeamsRepositoryPayload = {
  __typename?: 'UpdateTeamsRepositoryPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The repository that was updated. */
  repository?: Maybe<Repository>;
  /** The teams granted permission on the repository. */
  teams?: Maybe<Array<Team>>;
};

/** Autogenerated input type of UpdateTopics */
export type UpdateTopicsInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The Node ID of the repository. */
  repositoryId: Scalars['ID'];
  /** An array of topic names. */
  topicNames: Array<Scalars['String']>;
};

/** Autogenerated return type of UpdateTopics */
export type UpdateTopicsPayload = {
  __typename?: 'UpdateTopicsPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** Names of the provided topics that are not valid. */
  invalidTopicNames?: Maybe<Array<Scalars['String']>>;
  /** The updated repository. */
  repository?: Maybe<Repository>;
};

/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type User = Actor & Node & PackageOwner & ProfileOwner & ProjectOwner & ProjectV2Owner & ProjectV2Recent & RepositoryDiscussionAuthor & RepositoryDiscussionCommentAuthor & RepositoryOwner & Sponsorable & UniformResourceLocatable & {
  __typename?: 'User';
  /** Determine if this repository owner has any items that can be pinned to their profile. */
  anyPinnableItems: Scalars['Boolean'];
  /** A URL pointing to the user's public avatar. */
  avatarUrl: Scalars['URI'];
  /** The user's public profile bio. */
  bio?: Maybe<Scalars['String']>;
  /** The user's public profile bio as HTML. */
  bioHTML: Scalars['HTML'];
  /** Could this user receive email notifications, if the organization had notification restrictions enabled? */
  canReceiveOrganizationEmailsWhenNotificationsRestricted: Scalars['Boolean'];
  /** A list of commit comments made by this user. */
  commitComments: CommitCommentConnection;
  /** The user's public profile company. */
  company?: Maybe<Scalars['String']>;
  /** The user's public profile company as HTML. */
  companyHTML: Scalars['HTML'];
  /** The collection of contributions this user has made to different repositories. */
  contributionsCollection: ContributionsCollection;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** The user's publicly visible profile email. */
  email: Scalars['String'];
  /** The estimated next GitHub Sponsors payout for this user/organization in cents (USD). */
  estimatedNextSponsorsPayoutInCents: Scalars['Int'];
  /** A list of users the given user is followed by. */
  followers: FollowerConnection;
  /** A list of users the given user is following. */
  following: FollowingConnection;
  /** Find gist by repo name. */
  gist?: Maybe<Gist>;
  /** A list of gist comments made by this user. */
  gistComments: GistCommentConnection;
  /** A list of the Gists the user has created. */
  gists: GistConnection;
  /** True if this user/organization has a GitHub Sponsors listing. */
  hasSponsorsListing: Scalars['Boolean'];
  /** The hovercard information for this user in a given context */
  hovercard: Hovercard;
  id: Scalars['ID'];
  /** The interaction ability settings for this user. */
  interactionAbility?: Maybe<RepositoryInteractionAbility>;
  /** Whether or not this user is a participant in the GitHub Security Bug Bounty. */
  isBountyHunter: Scalars['Boolean'];
  /** Whether or not this user is a participant in the GitHub Campus Experts Program. */
  isCampusExpert: Scalars['Boolean'];
  /** Whether or not this user is a GitHub Developer Program member. */
  isDeveloperProgramMember: Scalars['Boolean'];
  /** Whether or not this user is a GitHub employee. */
  isEmployee: Scalars['Boolean'];
  /** Whether or not this user is following the viewer. Inverse of viewer_is_following */
  isFollowingViewer: Scalars['Boolean'];
  /** Whether or not this user is a member of the GitHub Stars Program. */
  isGitHubStar: Scalars['Boolean'];
  /** Whether or not the user has marked themselves as for hire. */
  isHireable: Scalars['Boolean'];
  /** Whether or not this user is a site administrator. */
  isSiteAdmin: Scalars['Boolean'];
  /** Whether the given account is sponsoring this user/organization. */
  isSponsoredBy: Scalars['Boolean'];
  /** True if the viewer is sponsored by this user/organization. */
  isSponsoringViewer: Scalars['Boolean'];
  /** Whether or not this user is the viewing user. */
  isViewer: Scalars['Boolean'];
  /** A list of issue comments made by this user. */
  issueComments: IssueCommentConnection;
  /** A list of issues associated with this user. */
  issues: IssueConnection;
  /**
   * Showcases a selection of repositories and gists that the profile owner has
   * either curated or that have been selected automatically based on popularity.
   */
  itemShowcase: ProfileItemShowcase;
  /** The user's public profile location. */
  location?: Maybe<Scalars['String']>;
  /** The username used to login. */
  login: Scalars['String'];
  /** The estimated monthly GitHub Sponsors income for this user/organization in cents (USD). */
  monthlyEstimatedSponsorsIncomeInCents: Scalars['Int'];
  /** The user's public profile name. */
  name?: Maybe<Scalars['String']>;
  /** Find an organization by its login that the user belongs to. */
  organization?: Maybe<Organization>;
  /** Verified email addresses that match verified domains for a specified organization the user is a member of. */
  organizationVerifiedDomainEmails: Array<Scalars['String']>;
  /** A list of organizations the user belongs to. */
  organizations: OrganizationConnection;
  /** A list of packages under the owner. */
  packages: PackageConnection;
  /** A list of repositories and gists this profile owner can pin to their profile. */
  pinnableItems: PinnableItemConnection;
  /** A list of repositories and gists this profile owner has pinned to their profile */
  pinnedItems: PinnableItemConnection;
  /** Returns how many more items this profile owner can pin to their profile. */
  pinnedItemsRemaining: Scalars['Int'];
  /** Find project by number. */
  project?: Maybe<Project>;
  /** Find a project by number. */
  projectV2?: Maybe<ProjectV2>;
  /** A list of projects under the owner. */
  projects: ProjectConnection;
  /** The HTTP path listing user's projects */
  projectsResourcePath: Scalars['URI'];
  /** The HTTP URL listing user's projects */
  projectsUrl: Scalars['URI'];
  /** A list of projects under the owner. */
  projectsV2: ProjectV2Connection;
  /** The user's profile pronouns */
  pronouns?: Maybe<Scalars['String']>;
  /** A list of public keys associated with this user. */
  publicKeys: PublicKeyConnection;
  /** A list of pull requests associated with this user. */
  pullRequests: PullRequestConnection;
  /** Recent projects that this user has modified in the context of the owner. */
  recentProjects: ProjectV2Connection;
  /** A list of repositories that the user owns. */
  repositories: RepositoryConnection;
  /** A list of repositories that the user recently contributed to. */
  repositoriesContributedTo: RepositoryConnection;
  /** Find Repository. */
  repository?: Maybe<Repository>;
  /** Discussion comments this user has authored. */
  repositoryDiscussionComments: DiscussionCommentConnection;
  /** Discussions this user has started. */
  repositoryDiscussions: DiscussionConnection;
  /** The HTTP path for this user */
  resourcePath: Scalars['URI'];
  /** Replies this user has saved */
  savedReplies?: Maybe<SavedReplyConnection>;
  /** The user's social media accounts, ordered as they appear on the user's profile. */
  socialAccounts: SocialAccountConnection;
  /** List of users and organizations this entity is sponsoring. */
  sponsoring: SponsorConnection;
  /** List of sponsors for this user or organization. */
  sponsors: SponsorConnection;
  /** Events involving this sponsorable, such as new sponsorships. */
  sponsorsActivities: SponsorsActivityConnection;
  /** The GitHub Sponsors listing for this user or organization. */
  sponsorsListing?: Maybe<SponsorsListing>;
  /** The sponsorship from the viewer to this user/organization; that is, the sponsorship where you're the sponsor. */
  sponsorshipForViewerAsSponsor?: Maybe<Sponsorship>;
  /** The sponsorship from this user/organization to the viewer; that is, the sponsorship you're receiving. */
  sponsorshipForViewerAsSponsorable?: Maybe<Sponsorship>;
  /** List of sponsorship updates sent from this sponsorable to sponsors. */
  sponsorshipNewsletters: SponsorshipNewsletterConnection;
  /** The sponsorships where this user or organization is the maintainer receiving the funds. */
  sponsorshipsAsMaintainer: SponsorshipConnection;
  /** The sponsorships where this user or organization is the funder. */
  sponsorshipsAsSponsor: SponsorshipConnection;
  /** Repositories the user has starred. */
  starredRepositories: StarredRepositoryConnection;
  /** The user's description of what they're currently doing. */
  status?: Maybe<UserStatus>;
  /** Repositories the user has contributed to, ordered by contribution rank, plus repositories the user has created */
  topRepositories: RepositoryConnection;
  /**
   * The amount in United States cents (e.g., 500 = $5.00 USD) that this entity has
   * spent on GitHub to fund sponsorships. Only returns a value when viewed by the
   * user themselves or by a user who can manage sponsorships for the requested organization.
   */
  totalSponsorshipAmountAsSponsorInCents?: Maybe<Scalars['Int']>;
  /** The user's Twitter username. */
  twitterUsername?: Maybe<Scalars['String']>;
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
  /** The HTTP URL for this user */
  url: Scalars['URI'];
  /** Can the viewer pin repositories and gists to the profile? */
  viewerCanChangePinnedItems: Scalars['Boolean'];
  /** Can the current viewer create new projects on this owner. */
  viewerCanCreateProjects: Scalars['Boolean'];
  /** Whether or not the viewer is able to follow the user. */
  viewerCanFollow: Scalars['Boolean'];
  /** Whether or not the viewer is able to sponsor this user/organization. */
  viewerCanSponsor: Scalars['Boolean'];
  /** Whether or not this user is followed by the viewer. Inverse of is_following_viewer. */
  viewerIsFollowing: Scalars['Boolean'];
  /** True if the viewer is sponsoring this user/organization. */
  viewerIsSponsoring: Scalars['Boolean'];
  /** A list of repositories the given user is watching. */
  watching: RepositoryConnection;
  /** A URL pointing to the user's public website/blog. */
  websiteUrl?: Maybe<Scalars['URI']>;
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserAnyPinnableItemsArgs = {
  type?: InputMaybe<PinnableItemType>;
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserAvatarUrlArgs = {
  size?: InputMaybe<Scalars['Int']>;
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserCanReceiveOrganizationEmailsWhenNotificationsRestrictedArgs = {
  login: Scalars['String'];
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserCommitCommentsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserContributionsCollectionArgs = {
  from?: InputMaybe<Scalars['DateTime']>;
  organizationID?: InputMaybe<Scalars['ID']>;
  to?: InputMaybe<Scalars['DateTime']>;
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserFollowersArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserFollowingArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserGistArgs = {
  name: Scalars['String'];
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserGistCommentsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserGistsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<GistOrder>;
  privacy?: InputMaybe<GistPrivacy>;
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserHovercardArgs = {
  primarySubjectId?: InputMaybe<Scalars['ID']>;
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserIsSponsoredByArgs = {
  accountLogin: Scalars['String'];
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserIssueCommentsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<IssueCommentOrder>;
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserIssuesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  filterBy?: InputMaybe<IssueFilters>;
  first?: InputMaybe<Scalars['Int']>;
  labels?: InputMaybe<Array<Scalars['String']>>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<IssueOrder>;
  states?: InputMaybe<Array<IssueState>>;
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserOrganizationArgs = {
  login: Scalars['String'];
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserOrganizationVerifiedDomainEmailsArgs = {
  login: Scalars['String'];
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserOrganizationsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<OrganizationOrder>;
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserPackagesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  names?: InputMaybe<Array<InputMaybe<Scalars['String']>>>;
  orderBy?: InputMaybe<PackageOrder>;
  packageType?: InputMaybe<PackageType>;
  repositoryId?: InputMaybe<Scalars['ID']>;
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserPinnableItemsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  types?: InputMaybe<Array<PinnableItemType>>;
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserPinnedItemsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  types?: InputMaybe<Array<PinnableItemType>>;
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserProjectArgs = {
  number: Scalars['Int'];
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserProjectV2Args = {
  number: Scalars['Int'];
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserProjectsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ProjectOrder>;
  search?: InputMaybe<Scalars['String']>;
  states?: InputMaybe<Array<ProjectState>>;
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserProjectsV2Args = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<ProjectV2Order>;
  query?: InputMaybe<Scalars['String']>;
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserPublicKeysArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserPullRequestsArgs = {
  after?: InputMaybe<Scalars['String']>;
  baseRefName?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  headRefName?: InputMaybe<Scalars['String']>;
  labels?: InputMaybe<Array<Scalars['String']>>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<IssueOrder>;
  states?: InputMaybe<Array<PullRequestState>>;
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserRecentProjectsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserRepositoriesArgs = {
  affiliations?: InputMaybe<Array<InputMaybe<RepositoryAffiliation>>>;
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  isFork?: InputMaybe<Scalars['Boolean']>;
  isLocked?: InputMaybe<Scalars['Boolean']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<RepositoryOrder>;
  ownerAffiliations?: InputMaybe<Array<InputMaybe<RepositoryAffiliation>>>;
  privacy?: InputMaybe<RepositoryPrivacy>;
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserRepositoriesContributedToArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  contributionTypes?: InputMaybe<Array<InputMaybe<RepositoryContributionType>>>;
  first?: InputMaybe<Scalars['Int']>;
  includeUserRepositories?: InputMaybe<Scalars['Boolean']>;
  isLocked?: InputMaybe<Scalars['Boolean']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<RepositoryOrder>;
  privacy?: InputMaybe<RepositoryPrivacy>;
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserRepositoryArgs = {
  followRenames?: InputMaybe<Scalars['Boolean']>;
  name: Scalars['String'];
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserRepositoryDiscussionCommentsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  onlyAnswers?: InputMaybe<Scalars['Boolean']>;
  repositoryId?: InputMaybe<Scalars['ID']>;
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserRepositoryDiscussionsArgs = {
  after?: InputMaybe<Scalars['String']>;
  answered?: InputMaybe<Scalars['Boolean']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<DiscussionOrder>;
  repositoryId?: InputMaybe<Scalars['ID']>;
  states?: InputMaybe<Array<DiscussionState>>;
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserSavedRepliesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<SavedReplyOrder>;
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserSocialAccountsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserSponsoringArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<SponsorOrder>;
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserSponsorsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<SponsorOrder>;
  tierId?: InputMaybe<Scalars['ID']>;
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserSponsorsActivitiesArgs = {
  actions?: InputMaybe<Array<SponsorsActivityAction>>;
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  includeAsSponsor?: InputMaybe<Scalars['Boolean']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<SponsorsActivityOrder>;
  period?: InputMaybe<SponsorsActivityPeriod>;
  since?: InputMaybe<Scalars['DateTime']>;
  until?: InputMaybe<Scalars['DateTime']>;
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserSponsorshipForViewerAsSponsorArgs = {
  activeOnly?: InputMaybe<Scalars['Boolean']>;
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserSponsorshipForViewerAsSponsorableArgs = {
  activeOnly?: InputMaybe<Scalars['Boolean']>;
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserSponsorshipNewslettersArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<SponsorshipNewsletterOrder>;
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserSponsorshipsAsMaintainerArgs = {
  activeOnly?: InputMaybe<Scalars['Boolean']>;
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  includePrivate?: InputMaybe<Scalars['Boolean']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<SponsorshipOrder>;
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserSponsorshipsAsSponsorArgs = {
  activeOnly?: InputMaybe<Scalars['Boolean']>;
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  maintainerLogins?: InputMaybe<Array<Scalars['String']>>;
  orderBy?: InputMaybe<SponsorshipOrder>;
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserStarredRepositoriesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<StarOrder>;
  ownedByViewer?: InputMaybe<Scalars['Boolean']>;
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserTopRepositoriesArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy: RepositoryOrder;
  since?: InputMaybe<Scalars['DateTime']>;
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserTotalSponsorshipAmountAsSponsorInCentsArgs = {
  since?: InputMaybe<Scalars['DateTime']>;
  sponsorableLogins?: InputMaybe<Array<Scalars['String']>>;
  until?: InputMaybe<Scalars['DateTime']>;
};


/** A user is an individual's account on GitHub that owns repositories and can make new content. */
export type UserWatchingArgs = {
  affiliations?: InputMaybe<Array<InputMaybe<RepositoryAffiliation>>>;
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  isLocked?: InputMaybe<Scalars['Boolean']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<RepositoryOrder>;
  ownerAffiliations?: InputMaybe<Array<InputMaybe<RepositoryAffiliation>>>;
  privacy?: InputMaybe<RepositoryPrivacy>;
};

/** The possible durations that a user can be blocked for. */
export type UserBlockDuration =
  /** The user was blocked for 1 day */
  | 'ONE_DAY'
  /** The user was blocked for 30 days */
  | 'ONE_MONTH'
  /** The user was blocked for 7 days */
  | 'ONE_WEEK'
  /** The user was blocked permanently */
  | 'PERMANENT'
  /** The user was blocked for 3 days */
  | 'THREE_DAYS';

/** Represents a 'user_blocked' event on a given user. */
export type UserBlockedEvent = Node & {
  __typename?: 'UserBlockedEvent';
  /** Identifies the actor who performed the event. */
  actor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** Number of days that the user was blocked for. */
  blockDuration: UserBlockDuration;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  id: Scalars['ID'];
  /** The user who was blocked. */
  subject?: Maybe<User>;
};

/** The connection type for User. */
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;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edit on user content */
export type UserContentEdit = Node & {
  __typename?: 'UserContentEdit';
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Identifies the date and time when the object was deleted. */
  deletedAt?: Maybe<Scalars['DateTime']>;
  /** The actor who deleted this content */
  deletedBy?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  /** A summary of the changes for this edit */
  diff?: Maybe<Scalars['String']>;
  /** When this content was edited */
  editedAt: Scalars['DateTime'];
  /** The actor who edited this content */
  editor?: Maybe<Bot | EnterpriseUserAccount | Mannequin | Organization | User>;
  id: Scalars['ID'];
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
};

/** A list of edits to content. */
export type UserContentEditConnection = {
  __typename?: 'UserContentEditConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<UserContentEditEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<UserContentEdit>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type UserContentEditEdge = {
  __typename?: 'UserContentEditEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<UserContentEdit>;
};

/** Represents a user. */
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>;
};

/** Email attributes from External Identity */
export type UserEmailMetadata = {
  __typename?: 'UserEmailMetadata';
  /** Boolean to identify primary emails */
  primary?: Maybe<Scalars['Boolean']>;
  /** Type of email */
  type?: Maybe<Scalars['String']>;
  /** Email id */
  value: Scalars['String'];
};

/** The user's description of what they're currently doing. */
export type UserStatus = Node & {
  __typename?: 'UserStatus';
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** An emoji summarizing the user's status. */
  emoji?: Maybe<Scalars['String']>;
  /** The status emoji as HTML. */
  emojiHTML?: Maybe<Scalars['HTML']>;
  /** If set, the status will not be shown after this date. */
  expiresAt?: Maybe<Scalars['DateTime']>;
  id: Scalars['ID'];
  /** Whether this status indicates the user is not fully available on GitHub. */
  indicatesLimitedAvailability: Scalars['Boolean'];
  /** A brief message describing what the user is doing. */
  message?: Maybe<Scalars['String']>;
  /** The organization whose members can see this status. If null, this status is publicly visible. */
  organization?: Maybe<Organization>;
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
  /** The user who has this status. */
  user: User;
};

/** The connection type for UserStatus. */
export type UserStatusConnection = {
  __typename?: 'UserStatusConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<UserStatusEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<UserStatus>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type UserStatusEdge = {
  __typename?: 'UserStatusEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<UserStatus>;
};

/** Ordering options for user status connections. */
export type UserStatusOrder = {
  /** The ordering direction. */
  direction: OrderDirection;
  /** The field to order user statuses by. */
  field: UserStatusOrderField;
};

/** Properties by which user status connections can be ordered. */
export type UserStatusOrderField =
  /** Order user statuses by when they were updated. */
  | 'UPDATED_AT';

/** A domain that can be verified or approved for an organization or an enterprise. */
export type VerifiableDomain = Node & {
  __typename?: 'VerifiableDomain';
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** The DNS host name that should be used for verification. */
  dnsHostName?: Maybe<Scalars['URI']>;
  /** The unicode encoded domain. */
  domain: Scalars['URI'];
  /** Whether a TXT record for verification with the expected host name was found. */
  hasFoundHostName: Scalars['Boolean'];
  /** Whether a TXT record for verification with the expected verification token was found. */
  hasFoundVerificationToken: Scalars['Boolean'];
  id: Scalars['ID'];
  /** Whether or not the domain is approved. */
  isApproved: Scalars['Boolean'];
  /** Whether this domain is required to exist for an organization or enterprise policy to be enforced. */
  isRequiredForPolicyEnforcement: Scalars['Boolean'];
  /** Whether or not the domain is verified. */
  isVerified: Scalars['Boolean'];
  /** The owner of the domain. */
  owner: VerifiableDomainOwner;
  /** The punycode encoded domain. */
  punycodeEncodedDomain: Scalars['URI'];
  /** The time that the current verification token will expire. */
  tokenExpirationTime?: Maybe<Scalars['DateTime']>;
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
  /** The current verification token for the domain. */
  verificationToken?: Maybe<Scalars['String']>;
};

/** The connection type for VerifiableDomain. */
export type VerifiableDomainConnection = {
  __typename?: 'VerifiableDomainConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<VerifiableDomainEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<VerifiableDomain>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type VerifiableDomainEdge = {
  __typename?: 'VerifiableDomainEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<VerifiableDomain>;
};

/** Ordering options for verifiable domain connections. */
export type VerifiableDomainOrder = {
  /** The ordering direction. */
  direction: OrderDirection;
  /** The field to order verifiable domains by. */
  field: VerifiableDomainOrderField;
};

/** Properties by which verifiable domain connections can be ordered. */
export type VerifiableDomainOrderField =
  /** Order verifiable domains by their creation date. */
  | 'CREATED_AT'
  /** Order verifiable domains by the domain name. */
  | 'DOMAIN';

/** Types that can own a verifiable domain. */
export type VerifiableDomainOwner = Enterprise | Organization;

/** Autogenerated input type of VerifyVerifiableDomain */
export type VerifyVerifiableDomainInput = {
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: InputMaybe<Scalars['String']>;
  /** The ID of the verifiable domain to verify. */
  id: Scalars['ID'];
};

/** Autogenerated return type of VerifyVerifiableDomain */
export type VerifyVerifiableDomainPayload = {
  __typename?: 'VerifyVerifiableDomainPayload';
  /** A unique identifier for the client performing the mutation. */
  clientMutationId?: Maybe<Scalars['String']>;
  /** The verifiable domain that was verified. */
  domain?: Maybe<VerifiableDomain>;
};

/** A hovercard context with a message describing how the viewer is related. */
export type ViewerHovercardContext = HovercardContext & {
  __typename?: 'ViewerHovercardContext';
  /** A string describing this context */
  message: Scalars['String'];
  /** An octicon to accompany this context */
  octicon: Scalars['String'];
  /** Identifies the user who is related to this context. */
  viewer: User;
};

/** A subject that may be upvoted. */
export type Votable = {
  /** Number of upvotes that this subject has received. */
  upvoteCount: Scalars['Int'];
  /** Whether or not the current user can add or remove an upvote on this subject. */
  viewerCanUpvote: Scalars['Boolean'];
  /** Whether or not the current user has already upvoted this subject. */
  viewerHasUpvoted: Scalars['Boolean'];
};

/** A workflow contains meta information about an Actions workflow file. */
export type Workflow = Node & {
  __typename?: 'Workflow';
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  id: Scalars['ID'];
  /** The name of the workflow. */
  name: Scalars['String'];
  /** The runs of the workflow. */
  runs: WorkflowRunConnection;
  /** The state of the workflow. */
  state: WorkflowState;
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
};


/** A workflow contains meta information about an Actions workflow file. */
export type WorkflowRunsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
  orderBy?: InputMaybe<WorkflowRunOrder>;
};

/** A workflow run. */
export type WorkflowRun = Node & UniformResourceLocatable & {
  __typename?: 'WorkflowRun';
  /** The check suite this workflow run belongs to. */
  checkSuite: CheckSuite;
  /** Identifies the date and time when the object was created. */
  createdAt: Scalars['DateTime'];
  /** Identifies the primary key from the database. */
  databaseId?: Maybe<Scalars['Int']>;
  /** The log of deployment reviews */
  deploymentReviews: DeploymentReviewConnection;
  /** The event that triggered the workflow run */
  event: Scalars['String'];
  id: Scalars['ID'];
  /** The pending deployment requests of all check runs in this workflow run */
  pendingDeploymentRequests: DeploymentRequestConnection;
  /** The HTTP path for this workflow run */
  resourcePath: Scalars['URI'];
  /** A number that uniquely identifies this workflow run in its parent workflow. */
  runNumber: Scalars['Int'];
  /** Identifies the date and time when the object was last updated. */
  updatedAt: Scalars['DateTime'];
  /** The HTTP URL for this workflow run */
  url: Scalars['URI'];
  /** The workflow executed in this workflow run. */
  workflow: Workflow;
};


/** A workflow run. */
export type WorkflowRunDeploymentReviewsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};


/** A workflow run. */
export type WorkflowRunPendingDeploymentRequestsArgs = {
  after?: InputMaybe<Scalars['String']>;
  before?: InputMaybe<Scalars['String']>;
  first?: InputMaybe<Scalars['Int']>;
  last?: InputMaybe<Scalars['Int']>;
};

/** The connection type for WorkflowRun. */
export type WorkflowRunConnection = {
  __typename?: 'WorkflowRunConnection';
  /** A list of edges. */
  edges?: Maybe<Array<Maybe<WorkflowRunEdge>>>;
  /** A list of nodes. */
  nodes?: Maybe<Array<Maybe<WorkflowRun>>>;
  /** Information to aid in pagination. */
  pageInfo: PageInfo;
  /** Identifies the total count of items in the connection. */
  totalCount: Scalars['Int'];
};

/** An edge in a connection. */
export type WorkflowRunEdge = {
  __typename?: 'WorkflowRunEdge';
  /** A cursor for use in pagination. */
  cursor: Scalars['String'];
  /** The item at the end of the edge. */
  node?: Maybe<WorkflowRun>;
};

/** Ways in which lists of workflow runs can be ordered upon return. */
export type WorkflowRunOrder = {
  /** The direction in which to order workflow runs by the specified field. */
  direction: OrderDirection;
  /** The field by which to order workflows. */
  field: WorkflowRunOrderField;
};

/** Properties by which workflow run connections can be ordered. */
export type WorkflowRunOrderField =
  /** Order workflow runs by most recently created */
  | 'CREATED_AT';

/** The possible states for a workflow. */
export type WorkflowState =
  /** The workflow is active. */
  | 'ACTIVE'
  /** The workflow was deleted from the git repository. */
  | 'DELETED'
  /** The workflow was disabled by default on a fork. */
  | 'DISABLED_FORK'
  /** The workflow was disabled for inactivity in the repository. */
  | 'DISABLED_INACTIVITY'
  /** The workflow was disabled manually. */
  | 'DISABLED_MANUALLY';
