export type GraphQlPullRequest = { repository: { pullRequest: T; }; }; export type Connection = { nodes: T; pageInfo: { hasNextPage: boolean; endCursor?: string; }; }; export type GraphQlPullRequests = { repository: { pullRequests: Connection; }; }; export type GraphQlUserPullRequests = { user: { pullRequests: Connection; }; }; export type PullRequestsNumber = { number: number; }; export type PullRequestsNumberAndOwner = { number: number; repository: Repository; }; export type Review = { state: 'PENDING' | 'COMMENTED' | 'APPROVED' | 'CHANGES_REQUESTED' | 'DISMISSED'; author: Author; }; export type Reviews = Review[]; export type Author = { login: string; avatarUrl: string; id: string; email: string; name: string; }; export type Repository = { name: string; owner: { login: string; }; isArchived: boolean; }; export type Label = { id: string; name: string; }; export type Status = { commit: { statusCheckRollup: { state: string; }; }; }; export type PullRequest = { id: string; repository: Repository; title: string; url: string; lastEditedAt: string; latestReviews: { nodes: Reviews; }; commits: { nodes: Status; }; mergeable: boolean; state: string; reviewDecision: ReviewDecision | null; isDraft: boolean; labels: { nodes: Label[]; }; createdAt: string; author: Author; }; export type PullRequests = PullRequest[]; export type PullRequestsColumn = { title: string; content: PullRequests; }; export type PRCardFormating = 'compacted' | 'fullscreen' | 'draft' | 'team' | 'archivedRepo'; export type ReviewDecision = 'IN_PROGRESS' | 'APPROVED' | 'REVIEW_REQUIRED'; export type PullRequestsSourceType = 'TeamRepositories' | 'TeamMembers';