Repository: DefinitelyTyped/dt-mergebot
Pull request #428 (2021-09-14 20:05:13)

Mark big PRs as suspicious for maintainer review
* Add `Huge Change` label etc, regenerate `cachedQueries.json`.

* Add `additions` + `deletions` to the PR query, and use it to set
  `hugeChange` (and later the label) if they sum up to >5000 lines,
  which is around 3% of PRs in the last two years.

* Fetch all labels with pagination, and filter out labels that start
  with `Pkg:`.



Patch:
diff --git a/src/basic.ts b/src/basic.ts
index 95d654e..53ce1a6 100644
--- a/src/basic.ts
+++ b/src/basic.ts
@@ -44,6 +44,7 @@ export const LabelNames = [
     "Too Many Owners",
     "Untested Change",
     "Check Config",
+    "Huge Change",
     "Needs Actions Permission",
     ...StalenessKinds,
 ] as const;
diff --git a/src/comments.ts b/src/comments.ts
index 7959c80..b75a5ee 100644
--- a/src/comments.ts
+++ b/src/comments.ts
@@ -65,10 +65,11 @@ export const PingReviewers = (names: readonly string[], reviewLink: string) => (
          in the GitHub UI so I know what's going on.`
 });
 
-export const PingReviewersOther = (user: string, reviewLink: string) => ({
+export const PingReviewersOther = (user: string, authorIsOwner: boolean, reviewLink: string) => ({
     tag: "pinging-reviewers-others",
     status: txt`
-        |🔔 @${user} — you're the only owner, but it would still be good if you find someone to
+        |🔔 @${user} — ${authorIsOwner ? "you're the only owner" : "there are no owners"},
+         but it would still be good if you find someone to
          [review this PR](${reviewLink}) in the next few days, otherwise a maintainer will look at it.
          (And if you do find someone, maybe even recruit them to be a second owner to make future
          changes easier...)`
diff --git a/src/compute-pr-actions.ts b/src/compute-pr-actions.ts
index bc10d95..4b38e57 100644
--- a/src/compute-pr-actions.ts
+++ b/src/compute-pr-actions.ts
@@ -252,6 +252,7 @@ export function process(prInfo: BotResult,
     label("Too Many Owners", info.tooManyOwners);
     label("Check Config", info.checkConfig);
     label("Untested Change", info.isUntested);
+    label("Huge Change", info.hugeChange);
     if (info.staleness?.state === "nearly" || info.staleness?.state === "done") label(info.staleness.kind);
 
     // Update intro comment
@@ -262,7 +263,8 @@ export function process(prInfo: BotResult,
     if (!(info.hasChangereqs || info.approvedBy.includes("owner") || info.approvedBy.includes("maintainer"))) {
         if (info.noOtherOwners) {
             if (info.popularityLevel !== "Critical") {
-                post(Comments.PingReviewersOther(info.author, urls.review(info.pr_number)));
+                const authorIsNewOwner = flatten(info.pkgInfo.map(p => p.addedOwners)).includes(info.author);
+                post(Comments.PingReviewersOther(info.author, info.authorIsOwner || authorIsNewOwner, urls.review(info.pr_number)));
             }
         } else if (info.tooManyOwners) {
             post(Comments.PingReviewersTooMany(info.otherOwners));
@@ -480,19 +482,24 @@ function createWelcomeComment(info: ExtendedPrInfo, post: (c: Comments.Comment)
             : "and there were no type definition changes";
         display(txt`Because you edited one package ${and}, I can help you merge this PR
                     once someone else signs off on it.`);
-    } else if (info.noOtherOwners && info.blessingKind !== "review") {
-        display(txt`There aren't any other owners of this package,
-                    so ${requiredApprover} will review it.`);
-    } else if (info.hasMultiplePackages && info.blessingKind !== "review") {
-        display(txt`Because this PR edits multiple packages, it can be merged
-                    once it's reviewed by ${requiredApprover}.`);
-    } else if (info.checkConfig && info.blessingKind !== "review") {
-        display(txt`Because this PR edits the configuration file, it can be merged
-                    once it's reviewed by ${requiredApprover}.`);
-    } else if (info.blessingKind !== "review") {
-        display(`This PR can be merged once it's reviewed by ${requiredApprover}.`);
-    } else {
+    } else if (info.blessingKind === "review") {
         display("This PR can be merged once it's reviewed.");
+    } else {
+        if (info.noOtherOwners) {
+            display(txt`There aren't any other owners of this package,
+                        so ${requiredApprover} will review it.`);
+        } else if (info.hasMultiplePackages) {
+            display(txt`Because this PR edits multiple packages, it can be merged
+                        once it's reviewed by ${requiredApprover}.`);
+        } else if (info.checkConfig) {
+            display(txt`Because this PR edits the configuration file, it can be merged
+                        once it's reviewed by ${requiredApprover}.`);
+        } else if (info.hugeChange) {
+            display(txt`Because this is a huge PR, it can be merged
+                        once it's reviewed by ${requiredApprover}.`);
+        } else {
+            display(`This PR can be merged once it's reviewed by ${requiredApprover}.`);
+        }
     }
 
     if (!info.tooManyFiles) {
diff --git a/src/pr-info.ts b/src/pr-info.ts
index 1dea800..38b8a4d 100644
--- a/src/pr-info.ts
+++ b/src/pr-info.ts
@@ -130,6 +130,10 @@ export interface PrInfo {
      * True if there are more files than we can fetch from the initial query (or no files)
      */
     readonly tooManyFiles: boolean;
+    /*
+     * True for PRs with over 5k line chanbges (top ~3%)
+     */
+    readonly hugeChange: boolean;
 
     readonly popularityLevel: PopularityLevel;
 
@@ -184,6 +188,7 @@ export async function deriveStateForPR(
     const tooManyFiles = !fileCount // should never happen, make it look fishy if it does
         || fileCount !== prInfo.files?.nodes?.length // didn't get all files somehow
         || fileCount > 500; // suspiciously many files
+    const hugeChange = prInfo.additions + prInfo.deletions > 5000;
 
     const pkgInfoEtc = await getPackageInfosEtc(
         noNullish(prInfo.files?.nodes).map(f => f.path).sort(),
@@ -212,6 +217,7 @@ export async function deriveStateForPR(
         hasMergeConflict: prInfo.mergeable === "CONFLICTING",
         isFirstContribution,
         tooManyFiles,
+        hugeChange,
         popularityLevel,
         pkgInfo,
         reviews,
diff --git a/src/queries/label-columns-queries.ts b/src/queries/label-columns-queries.ts
index 5d316d2..ad9a513 100644
--- a/src/queries/label-columns-queries.ts
+++ b/src/queries/label-columns-queries.ts
@@ -1,22 +1,41 @@
 import { gql, TypedDocumentNode } from "@apollo/client/core";
-import { GetLabels } from "./schema/GetLabels";
+import { GetLabels, GetLabelsVariables, GetLabels_repository_labels_nodes } from "./schema/GetLabels";
 import { GetProjectColumns } from "./schema/GetProjectColumns";
+import { client } from "../graphql-client";
+import { noNullish } from "../util/util";
 
-export { GetLabels, GetProjectColumns };
+export { getLabels, GetProjectColumns };
 
-const GetLabels: TypedDocumentNode<GetLabels, never> = gql`
-query GetLabels {
-  repository(name:"DefinitelyTyped", owner:"DefinitelyTyped") {
+const GetLabelsQuery: TypedDocumentNode<GetLabels, GetLabelsVariables> = gql`
+query GetLabels($endCursor: String) {
+  repository(name: "DefinitelyTyped", owner: "DefinitelyTyped") {
     id
-    labels(first: 100) {
+    labels(first: 100, after: $endCursor) {
       nodes {
         id
         name
       }
+      pageInfo { hasNextPage endCursor }
     }
   }
 }`;
 
+async function getLabels() {
+    const labels: GetLabels_repository_labels_nodes[] = [];
+    let endCursor: string | undefined | null;
+    while (true) {
+        const result = await client.query({
+            query: GetLabelsQuery,
+            fetchPolicy: "no-cache",
+            variables: { endCursor },
+        });
+        const someLabels = result.data.repository?.labels;
+        labels.push(...noNullish(someLabels?.nodes));
+        if (!someLabels?.pageInfo.hasNextPage) return labels;
+        endCursor = someLabels.pageInfo.endCursor;
+    }
+}
+
 const GetProjectColumns: TypedDocumentNode<GetProjectColumns, never> = gql`
 query GetProjectColumns {
   repository(name:"DefinitelyTyped", owner:"DefinitelyTyped") {
diff --git a/src/queries/pr-query.ts b/src/queries/pr-query.ts
index cead70b..024f859 100644
--- a/src/queries/pr-query.ts
+++ b/src/queries/pr-query.ts
@@ -39,6 +39,8 @@ query PR($prNumber: Int!) {
         state
         headRefOid
         changedFiles
+        additions
+        deletions
 
         timelineItems(last: 200, itemTypes: [REOPENED_EVENT, READY_FOR_REVIEW_EVENT,
                                              MOVED_COLUMNS_IN_PROJECT_EVENT]) {
diff --git a/src/queries/schema/CardIdToPr.ts b/src/queries/schema/CardIdToPr.ts
index b563dec..2bd1318 100644
--- a/src/queries/schema/CardIdToPr.ts
+++ b/src/queries/schema/CardIdToPr.ts
@@ -10,7 +10,7 @@ import { PullRequestState } from "./graphql-global-types";
 // ====================================================
 
 export interface CardIdToPr_node_CodeOfConduct {
-  __typename: "CodeOfConduct" | "Enterprise" | "EnterpriseUserAccount" | "Organization" | "Package" | "PackageVersion" | "PackageFile" | "Release" | "Bot" | "Mannequin" | "User" | "Project" | "ProjectColumn" | "Issue" | "UserContentEdit" | "Label" | "PullRequest" | "Repository" | "License" | "BranchProtectionRule" | "Ref" | "PushAllowance" | "App" | "IpAllowListEntry" | "Team" | "UserStatus" | "TeamDiscussion" | "TeamDiscussionComment" | "Reaction" | "OrganizationInvitation" | "ReviewDismissalAllowance" | "CommitComment" | "Commit" | "CheckSuite" | "CheckRun" | "Deployment" | "DeploymentStatus" | "Environment" | "DeploymentProtectionRule" | "Push" | "WorkflowRun" | "DeploymentReview" | "Workflow" | "Status" | "StatusContext" | "StatusCheckRollup" | "Tree" | "DeployKey" | "Discussion" | "DiscussionComment" | "DiscussionCategory" | "Language" | "Milestone" | "PinnedDiscussion" | "PinnedIssue" | "RepositoryTopic" | "Topic" | "RepositoryVulnerabilityAlert" | "SecurityAdvisory" | "CWE" | "IssueComment" | "PullRequestCommit" | "PullRequestReview" | "PullRequestReviewComment" | "ReviewRequest" | "PullRequestReviewThread" | "AssignedEvent" | "BaseRefDeletedEvent" | "BaseRefForcePushedEvent" | "ClosedEvent" | "CommitCommentThread" | "CrossReferencedEvent" | "DemilestonedEvent" | "DeployedEvent" | "DeploymentEnvironmentChangedEvent" | "HeadRefDeletedEvent" | "HeadRefForcePushedEvent" | "HeadRefRestoredEvent" | "LabeledEvent" | "LockedEvent" | "MergedEvent" | "MilestonedEvent" | "ReferencedEvent" | "RenamedTitleEvent" | "ReopenedEvent" | "ReviewDismissedEvent" | "ReviewRequestRemovedEvent" | "ReviewRequestedEvent" | "SubscribedEvent" | "UnassignedEvent" | "UnlabeledEvent" | "UnlockedEvent" | "UnsubscribedEvent" | "UserBlockedEvent" | "AddedToProjectEvent" | "AutoMergeDisabledEvent" | "AutoMergeEnabledEvent" | "AutoRebaseEnabledEvent" | "AutoSquashEnabledEvent" | "AutomaticBaseChangeFailedEvent" | "AutomaticBaseChangeSucceededEvent" | "BaseRefChangedEvent" | "CommentDeletedEvent" | "ConnectedEvent" | "ConvertToDraftEvent" | "ConvertedNoteToIssueEvent" | "DisconnectedEvent" | "MarkedAsDuplicateEvent" | "MentionedEvent" | "MovedColumnsInProjectEvent" | "PinnedEvent" | "PullRequestCommitCommentThread" | "ReadyForReviewEvent" | "RemovedFromProjectEvent" | "TransferredEvent" | "UnmarkedAsDuplicateEvent" | "UnpinnedEvent" | "Gist" | "GistComment" | "SponsorsActivity" | "SponsorsTier" | "Sponsorship" | "SponsorsListing" | "PublicKey" | "SavedReply" | "ReleaseAsset" | "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" | "VerifiableDomain" | "OrganizationIdentityProvider" | "ExternalIdentity" | "EnterpriseServerInstallation" | "EnterpriseServerUserAccount" | "EnterpriseServerUserAccountEmail" | "EnterpriseServerUserAccountsUpload" | "EnterpriseRepositoryInfo" | "EnterpriseAdministratorInvitation" | "RepositoryInvitation" | "EnterpriseIdentityProvider" | "MarketplaceCategory" | "MarketplaceListing" | "Blob" | "PackageTag" | "Tag";
+  __typename: "CodeOfConduct" | "Enterprise" | "EnterpriseUserAccount" | "Organization" | "Package" | "PackageVersion" | "PackageFile" | "Release" | "Bot" | "Mannequin" | "User" | "Project" | "ProjectColumn" | "Issue" | "UserContentEdit" | "Label" | "PullRequest" | "Repository" | "License" | "BranchProtectionRule" | "Ref" | "PushAllowance" | "App" | "IpAllowListEntry" | "Team" | "UserStatus" | "TeamDiscussion" | "TeamDiscussionComment" | "Reaction" | "OrganizationInvitation" | "ReviewDismissalAllowance" | "CommitComment" | "Commit" | "CheckSuite" | "CheckRun" | "Deployment" | "DeploymentStatus" | "Environment" | "Push" | "WorkflowRun" | "DeploymentReview" | "Workflow" | "Status" | "StatusContext" | "StatusCheckRollup" | "Tree" | "DeployKey" | "Discussion" | "DiscussionComment" | "DiscussionCategory" | "Language" | "Milestone" | "PinnedDiscussion" | "PinnedIssue" | "RepositoryTopic" | "Topic" | "RepositoryVulnerabilityAlert" | "SecurityAdvisory" | "CWE" | "IssueComment" | "PullRequestCommit" | "PullRequestReview" | "PullRequestReviewComment" | "ReviewRequest" | "PullRequestReviewThread" | "AssignedEvent" | "BaseRefDeletedEvent" | "BaseRefForcePushedEvent" | "ClosedEvent" | "CommitCommentThread" | "CrossReferencedEvent" | "DemilestonedEvent" | "DeployedEvent" | "DeploymentEnvironmentChangedEvent" | "HeadRefDeletedEvent" | "HeadRefForcePushedEvent" | "HeadRefRestoredEvent" | "LabeledEvent" | "LockedEvent" | "MergedEvent" | "MilestonedEvent" | "ReferencedEvent" | "RenamedTitleEvent" | "ReopenedEvent" | "ReviewDismissedEvent" | "ReviewRequestRemovedEvent" | "ReviewRequestedEvent" | "SubscribedEvent" | "UnassignedEvent" | "UnlabeledEvent" | "UnlockedEvent" | "UnsubscribedEvent" | "UserBlockedEvent" | "AddedToProjectEvent" | "AutoMergeDisabledEvent" | "AutoMergeEnabledEvent" | "AutoRebaseEnabledEvent" | "AutoSquashEnabledEvent" | "AutomaticBaseChangeFailedEvent" | "AutomaticBaseChangeSucceededEvent" | "BaseRefChangedEvent" | "CommentDeletedEvent" | "ConnectedEvent" | "ConvertToDraftEvent" | "ConvertedNoteToIssueEvent" | "DisconnectedEvent" | "MarkedAsDuplicateEvent" | "MentionedEvent" | "MovedColumnsInProjectEvent" | "PinnedEvent" | "PullRequestCommitCommentThread" | "ReadyForReviewEvent" | "RemovedFromProjectEvent" | "TransferredEvent" | "UnmarkedAsDuplicateEvent" | "UnpinnedEvent" | "Gist" | "GistComment" | "SponsorsActivity" | "SponsorsTier" | "Sponsorship" | "SponsorsListing" | "SponsorshipNewsletter" | "PublicKey" | "SavedReply" | "ReleaseAsset" | "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" | "VerifiableDomain" | "OrganizationIdentityProvider" | "ExternalIdentity" | "EnterpriseServerInstallation" | "EnterpriseServerUserAccount" | "EnterpriseServerUserAccountEmail" | "EnterpriseServerUserAccountsUpload" | "EnterpriseRepositoryInfo" | "EnterpriseAdministratorInvitation" | "RepositoryInvitation" | "EnterpriseIdentityProvider" | "MarketplaceCategory" | "MarketplaceListing" | "Blob" | "PackageTag" | "Tag";
 }
 
 export interface CardIdToPr_node_ProjectCard_content_Issue {
diff --git a/src/queries/schema/GetLabels.ts b/src/queries/schema/GetLabels.ts
index edbf029..cd98d55 100644
--- a/src/queries/schema/GetLabels.ts
+++ b/src/queries/schema/GetLabels.ts
@@ -16,12 +16,28 @@ export interface GetLabels_repository_labels_nodes {
   name: string;
 }
 
+export interface GetLabels_repository_labels_pageInfo {
+  __typename: "PageInfo";
+  /**
+   * When paginating forwards, are there more items?
+   */
+  hasNextPage: boolean;
+  /**
+   * When paginating forwards, the cursor to continue.
+   */
+  endCursor: string | null;
+}
+
 export interface GetLabels_repository_labels {
   __typename: "LabelConnection";
   /**
    * A list of nodes.
    */
   nodes: (GetLabels_repository_labels_nodes | null)[] | null;
+  /**
+   * Information to aid in pagination.
+   */
+  pageInfo: GetLabels_repository_labels_pageInfo;
 }
 
 export interface GetLabels_repository {
@@ -39,3 +55,7 @@ export interface GetLabels {
    */
   repository: GetLabels_repository | null;
 }
+
+export interface GetLabelsVariables {
+  endCursor?: string | null;
+}
diff --git a/src/queries/schema/PR.ts b/src/queries/schema/PR.ts
index 7d934ab..5b19a99 100644
--- a/src/queries/schema/PR.ts
+++ b/src/queries/schema/PR.ts
@@ -541,6 +541,14 @@ export interface PR_repository_pullRequest {
    * The number of changed files in this pull request.
    */
   changedFiles: number;
+  /**
+   * The number of additions in this pull request.
+   */
+  additions: number;
+  /**
+   * The number of deletions in this pull request.
+   */
+  deletions: number;
   /**
    * A list of events, comments, commits, etc. associated with the pull request.
    */
diff --git a/src/util/cachedQueries.ts b/src/util/cachedQueries.ts
index 75c7eaf..c03ab63 100644
--- a/src/util/cachedQueries.ts
+++ b/src/util/cachedQueries.ts
@@ -1,5 +1,5 @@
 import { TypedDocumentNode } from "@apollo/client/core";
-import { GetLabels, GetProjectColumns } from "../queries/label-columns-queries";
+import { getLabels as getLabelsRaw, GetProjectColumns } from "../queries/label-columns-queries";
 import { client } from "../graphql-client";
 import { noNullish } from "./util";
 
@@ -10,14 +10,12 @@ export async function getProjectBoardColumns() {
 }
 
 export async function getLabels() {
-    const res = noNullish((await query(GetLabels))
-        .repository?.labels?.nodes);
-    return res.sort((a,b) => a.name.localeCompare(b.name));
+    const res = await getLabelsRaw();
+    return res.filter(l => !l.name.startsWith("Pkg:"))
+        .sort((a,b) => a.name.localeCompare(b.name));
 }
 
 async function query<T>(gql: TypedDocumentNode<T>): Promise<T> {
-    const res = await client.query({
-        query: gql,
-    });
+    const res = await client.query({ query: gql });
     return res.data;
 }


Test patch:
diff --git a/src/_tests/cachedQueries.json b/src/_tests/cachedQueries.json
index a36a5f0..554da2f 100644
--- a/src/_tests/cachedQueries.json
+++ b/src/_tests/cachedQueries.json
@@ -39,259 +39,264 @@
   ],
   "getLabels": [
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWw0MDUzNDEwNjk=",
-      "name": "@types"
+      "name": "@types",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWw2NDQxMTYxNzA=",
-      "name": "Abandoned"
+      "name": "Abandoned",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWw3OTg3Mzc0Nzg=",
-      "name": "Author is Owner"
+      "name": "Author is Owner",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWwyMTU0ODE2NTQ5",
-      "name": "Check Config"
+      "name": "Check Config",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWwxNjA4NjM0NDg0",
-      "name": "Critical package"
+      "name": "Critical package",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWwxNTY4Nzg5MA==",
-      "name": "Definition:Bug"
+      "name": "Definition:Bug",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWw4ODk3OTYxOA==",
-      "name": "Definition:Creating"
+      "name": "Definition:Creating",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWwxNTY4Nzg5Mg==",
-      "name": "Definition:Enhancement"
+      "name": "Definition:Enhancement",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWwyOTM4NjAwOA==",
-      "name": "Definition:Missing"
+      "name": "Definition:Missing",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWwyMzcwODQxMw==",
-      "name": "Definition:Request"
+      "name": "Definition:Request",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWwyMTg2MTM4MjI0",
-      "name": "dependencies"
+      "name": "dependencies",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWw1NjcxNzAyMQ==",
-      "name": "Discussion"
+      "name": "Discussion",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWw3NTcxMTk0Ng==",
-      "name": "Documents"
+      "name": "Documents",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWwzMDI2OTUyNQ==",
-      "name": "Duplicate"
+      "name": "Duplicate",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWwxNjA4MjA4ODM1",
-      "name": "Edits Infrastructure"
+      "name": "Edits Infrastructure",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWwxNjA4MjEwODMz",
-      "name": "Edits multiple packages"
+      "name": "Edits multiple packages",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWwyNDk1OTc2ODI5",
-      "name": "Edits Owners"
+      "name": "Edits Owners",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWw1ODMyOTQ0NzQ=",
-      "name": "Has Merge Conflict"
+      "name": "Has Merge Conflict",
+      "__typename": "Label"
+    },
+    {
+      "id": "MDU6TGFiZWwzMzUzMTYyNTAy",
+      "name": "Huge Change",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWwzMDI2OTc0NQ==",
-      "name": "Infrastructure"
+      "name": "Infrastructure",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWwzMDI2OTUzOA==",
-      "name": "invalid"
+      "name": "invalid",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWw1NjcxNDU5MQ==",
-      "name": "Level:Advanced"
+      "name": "Level:Advanced",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWw1NjcxNDU3Mg==",
-      "name": "Level:Intermediate"
+      "name": "Level:Intermediate",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWw1NjcxNDU3MQ==",
-      "name": "Level:Starter"
+      "name": "Level:Starter",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWwxNjA4NTUyNDEw",
-      "name": "Maintainer Approved"
+      "name": "Maintainer Approved",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWwyMTk3MzU2OTA1",
-      "name": "Mergebot Error"
+      "name": "Mergebot Error",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWwyNTI5Mjc2Njc2",
-      "name": "Multiple Languages"
+      "name": "Multiple Languages",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWw2NDY3ODg4ODg=",
-      "name": "New Definition"
+      "name": "New Definition",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWwyMTU0ODU3ODAw",
-      "name": "No Other Owners"
+      "name": "No Other Owners",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWw1ODYxNzcwNjM=",
-      "name": "Other Approved"
+      "name": "Other Approved",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWw5MDUzMzQwOTU=",
-      "name": "Owner Approved"
+      "name": "Owner Approved",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWwxNTk2MTk1ODI0",
-      "name": "Perf: Better"
+      "name": "Perf: Better",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWwxNTk2MTk4NTgw",
-      "name": "Perf: Mixed"
+      "name": "Perf: Mixed",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWwxNTk2MTk0NzQ0",
-      "name": "Perf: Same"
+      "name": "Perf: Same",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWwxNTk2MTk5Mjg2",
-      "name": "Perf: Worse"
+      "name": "Perf: Worse",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWw2ODQzMjE1NzY=",
-      "name": "Popular package"
+      "name": "Popular package",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWwyOTUzOTk4NzE4",
-      "name": "Possibly Edits Infrastructure"
+      "name": "Possibly Edits Infrastructure",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWwxNTY4Nzg5NA==",
-      "name": "Question"
+      "name": "Question",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWwzOTU2NzkwNTk=",
-      "name": "Revision needed"
+      "name": "Revision needed",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWw2OTcwMTg5NzI=",
-      "name": "Self Merge"
+      "name": "Self Merge",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWw1NjcxNDI1Mg==",
-      "name": "Target:Browser"
+      "name": "Target:Browser",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWw1NjcxNDI0NQ==",
-      "name": "Target:NodeJS"
+      "name": "Target:NodeJS",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWwyMDk2NzQzNjAw",
-      "name": "The CI failed"
+      "name": "The CI failed",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWwyOTUzOTk2NDAx",
-      "name": "The CI is blocked"
+      "name": "The CI is blocked",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWwyMTU2MzIyMzcx",
-      "name": "Too Many Owners"
+      "name": "Too Many Owners",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWwzMjAzMjg3Mg==",
-      "name": "TypeScript-Core"
+      "name": "TypeScript-Core",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWw2NDQwOTUzNDI=",
-      "name": "Unmergeable"
+      "name": "Unmergeable",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWw2NDQwOTU4ODI=",
-      "name": "Unmerged"
+      "name": "Unmerged",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWw2NDY3ODkyMDU=",
-      "name": "Unowned"
+      "name": "Unowned",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWwyNDYyODA0MzE1",
-      "name": "Unreviewed"
+      "name": "Unreviewed",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWwyMTU0NzUwNDcz",
-      "name": "Untested Change"
+      "name": "Untested Change",
+      "__typename": "Label"
     },
     {
-      "__typename": "Label",
       "id": "MDU6TGFiZWwyMDk2NzQ1NzQx",
-      "name": "Where is GH Actions?"
+      "name": "Where is GH Actions?",
+      "__typename": "Label"
     }
   ]
 }
diff --git a/src/_tests/fixtures/38979/derived.json b/src/_tests/fixtures/38979/derived.json
index 4d8ecb0..fe80f83 100644
--- a/src/_tests/fixtures/38979/derived.json
+++ b/src/_tests/fixtures/38979/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Critical",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/43136/derived.json b/src/_tests/fixtures/43136/derived.json
index 9552d39..cc11fdd 100644
--- a/src/_tests/fixtures/43136/derived.json
+++ b/src/_tests/fixtures/43136/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": true,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Critical",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/43144/derived.json b/src/_tests/fixtures/43144/derived.json
index 9790ab5..6e59fdb 100644
--- a/src/_tests/fixtures/43144/derived.json
+++ b/src/_tests/fixtures/43144/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/43151/derived.json b/src/_tests/fixtures/43151/derived.json
index b0235b3..95133f4 100644
--- a/src/_tests/fixtures/43151/derived.json
+++ b/src/_tests/fixtures/43151/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/43160/derived.json b/src/_tests/fixtures/43160/derived.json
index fcbcc32..7de26b4 100644
--- a/src/_tests/fixtures/43160/derived.json
+++ b/src/_tests/fixtures/43160/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": true,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/43175/derived.json b/src/_tests/fixtures/43175/derived.json
index a0467e9..4bdea3c 100644
--- a/src/_tests/fixtures/43175/derived.json
+++ b/src/_tests/fixtures/43175/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": true,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Popular",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/43235/derived.json b/src/_tests/fixtures/43235/derived.json
index bccb44a..66e6093 100644
--- a/src/_tests/fixtures/43235/derived.json
+++ b/src/_tests/fixtures/43235/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/43314/derived.json b/src/_tests/fixtures/43314/derived.json
index 323143b..bcc2d1b 100644
--- a/src/_tests/fixtures/43314/derived.json
+++ b/src/_tests/fixtures/43314/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/43695-duplicate-comment/derived.json b/src/_tests/fixtures/43695-duplicate-comment/derived.json
index f4e2966..5f5dece 100644
--- a/src/_tests/fixtures/43695-duplicate-comment/derived.json
+++ b/src/_tests/fixtures/43695-duplicate-comment/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/43695-post-review/derived.json b/src/_tests/fixtures/43695-post-review/derived.json
index 00ad25a..b07f082 100644
--- a/src/_tests/fixtures/43695-post-review/derived.json
+++ b/src/_tests/fixtures/43695-post-review/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/43695/derived.json b/src/_tests/fixtures/43695/derived.json
index 45231ac..edaeda3 100644
--- a/src/_tests/fixtures/43695/derived.json
+++ b/src/_tests/fixtures/43695/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/43960/derived.json b/src/_tests/fixtures/43960/derived.json
index 08d2544..bf12279 100644
--- a/src/_tests/fixtures/43960/derived.json
+++ b/src/_tests/fixtures/43960/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Popular",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/44267/derived.json b/src/_tests/fixtures/44267/derived.json
index 794a718..5bc3c84 100644
--- a/src/_tests/fixtures/44267/derived.json
+++ b/src/_tests/fixtures/44267/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": true,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/44282/derived.json b/src/_tests/fixtures/44282/derived.json
index ab85f5d..741117e 100644
--- a/src/_tests/fixtures/44282/derived.json
+++ b/src/_tests/fixtures/44282/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": true,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/44288/derived.json b/src/_tests/fixtures/44288/derived.json
index 72e6cae..275105f 100644
--- a/src/_tests/fixtures/44288/derived.json
+++ b/src/_tests/fixtures/44288/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": true,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/44299-with-files/derived.json b/src/_tests/fixtures/44299-with-files/derived.json
index e0ce9bc..55c5a69 100644
--- a/src/_tests/fixtures/44299-with-files/derived.json
+++ b/src/_tests/fixtures/44299-with-files/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": true,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/44299/derived.json b/src/_tests/fixtures/44299/derived.json
index e0ce9bc..55c5a69 100644
--- a/src/_tests/fixtures/44299/derived.json
+++ b/src/_tests/fixtures/44299/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": true,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/44316/derived.json b/src/_tests/fixtures/44316/derived.json
index d8a3657..1a26f92 100644
--- a/src/_tests/fixtures/44316/derived.json
+++ b/src/_tests/fixtures/44316/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/44343-pending-travis/derived.json b/src/_tests/fixtures/44343-pending-travis/derived.json
index 8513db3..7b4086c 100644
--- a/src/_tests/fixtures/44343-pending-travis/derived.json
+++ b/src/_tests/fixtures/44343-pending-travis/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/44343-pre-travis/derived.json b/src/_tests/fixtures/44343-pre-travis/derived.json
index 8513db3..7b4086c 100644
--- a/src/_tests/fixtures/44343-pre-travis/derived.json
+++ b/src/_tests/fixtures/44343-pre-travis/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/44343/derived.json b/src/_tests/fixtures/44343/derived.json
index e84aa0b..299f128 100644
--- a/src/_tests/fixtures/44343/derived.json
+++ b/src/_tests/fixtures/44343/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/44402/derived.json b/src/_tests/fixtures/44402/derived.json
index 46111c9..3156250 100644
--- a/src/_tests/fixtures/44402/derived.json
+++ b/src/_tests/fixtures/44402/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/44411/derived.json b/src/_tests/fixtures/44411/derived.json
index e3388d4..8817732 100644
--- a/src/_tests/fixtures/44411/derived.json
+++ b/src/_tests/fixtures/44411/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/44424-1-travis-instantly-finished/derived.json b/src/_tests/fixtures/44424-1-travis-instantly-finished/derived.json
index 2001249..7d0b8b8 100644
--- a/src/_tests/fixtures/44424-1-travis-instantly-finished/derived.json
+++ b/src/_tests/fixtures/44424-1-travis-instantly-finished/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": true,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/44424-2-after-travis-second/derived.json b/src/_tests/fixtures/44424-2-after-travis-second/derived.json
index 9e96abc..a173841 100644
--- a/src/_tests/fixtures/44424-2-after-travis-second/derived.json
+++ b/src/_tests/fixtures/44424-2-after-travis-second/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": true,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/44437/derived.json b/src/_tests/fixtures/44437/derived.json
index 95472fd..45d771a 100644
--- a/src/_tests/fixtures/44437/derived.json
+++ b/src/_tests/fixtures/44437/derived.json
@@ -10,6 +10,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Popular",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/44439/derived.json b/src/_tests/fixtures/44439/derived.json
index db26ea6..1e0ab50 100644
--- a/src/_tests/fixtures/44439/derived.json
+++ b/src/_tests/fixtures/44439/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": true,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/44631/derived.json b/src/_tests/fixtures/44631/derived.json
index 5b56462..65eb535 100644
--- a/src/_tests/fixtures/44631/derived.json
+++ b/src/_tests/fixtures/44631/derived.json
@@ -10,6 +10,7 @@
   "hasMergeConflict": true,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/44857/derived.json b/src/_tests/fixtures/44857/derived.json
index 5fda062..1fcaa77 100644
--- a/src/_tests/fixtures/44857/derived.json
+++ b/src/_tests/fixtures/44857/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Critical",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/44989-14days/derived.json b/src/_tests/fixtures/44989-14days/derived.json
index 05b754f..9459630 100644
--- a/src/_tests/fixtures/44989-14days/derived.json
+++ b/src/_tests/fixtures/44989-14days/derived.json
@@ -10,6 +10,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Popular",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/44989-32days/derived.json b/src/_tests/fixtures/44989-32days/derived.json
index c1ac8ce..32d02ae 100644
--- a/src/_tests/fixtures/44989-32days/derived.json
+++ b/src/_tests/fixtures/44989-32days/derived.json
@@ -10,6 +10,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Popular",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/44989-3days/derived.json b/src/_tests/fixtures/44989-3days/derived.json
index fcee185..e3c69e2 100644
--- a/src/_tests/fixtures/44989-3days/derived.json
+++ b/src/_tests/fixtures/44989-3days/derived.json
@@ -10,6 +10,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Popular",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/44989-7days/derived.json b/src/_tests/fixtures/44989-7days/derived.json
index a016306..a8407c6 100644
--- a/src/_tests/fixtures/44989-7days/derived.json
+++ b/src/_tests/fixtures/44989-7days/derived.json
@@ -10,6 +10,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Popular",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/45137/derived.json b/src/_tests/fixtures/45137/derived.json
index e8a8669..cb03baa 100644
--- a/src/_tests/fixtures/45137/derived.json
+++ b/src/_tests/fixtures/45137/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Popular",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/45627/derived.json b/src/_tests/fixtures/45627/derived.json
index 5c6bd6e..535e6e2 100644
--- a/src/_tests/fixtures/45627/derived.json
+++ b/src/_tests/fixtures/45627/derived.json
@@ -13,6 +13,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Critical",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/45836/derived.json b/src/_tests/fixtures/45836/derived.json
index 5722571..72e6104 100644
--- a/src/_tests/fixtures/45836/derived.json
+++ b/src/_tests/fixtures/45836/derived.json
@@ -12,6 +12,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/45884/derived.json b/src/_tests/fixtures/45884/derived.json
index 491e454..493a700 100644
--- a/src/_tests/fixtures/45884/derived.json
+++ b/src/_tests/fixtures/45884/derived.json
@@ -11,6 +11,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": true,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/45888/derived.json b/src/_tests/fixtures/45888/derived.json
index 2d50d8d..28ce1ab 100644
--- a/src/_tests/fixtures/45888/derived.json
+++ b/src/_tests/fixtures/45888/derived.json
@@ -10,6 +10,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": true,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/45890/derived.json b/src/_tests/fixtures/45890/derived.json
index b3721fd..3a701ee 100644
--- a/src/_tests/fixtures/45890/derived.json
+++ b/src/_tests/fixtures/45890/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": true,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/45946/derived.json b/src/_tests/fixtures/45946/derived.json
index d7663e7..b8e06e7 100644
--- a/src/_tests/fixtures/45946/derived.json
+++ b/src/_tests/fixtures/45946/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/45946/mutations.json b/src/_tests/fixtures/45946/mutations.json
index bff5243..408e88d 100644
--- a/src/_tests/fixtures/45946/mutations.json
+++ b/src/_tests/fixtures/45946/mutations.json
@@ -33,7 +33,7 @@
     "variables": {
       "input": {
         "subjectId": "MDExOlB1bGxSZXF1ZXN0NDQ2MDIxMjkw",
-        "body": "🔔 @rubensworks — you're the only owner, but it would still be good if you find someone to [review this PR](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/45946/files) in the next few days, otherwise a maintainer will look at it. (And if you do find someone, maybe even recruit them to be a second owner to make future changes easier...)\n<!--typescript_bot_pinging-reviewers-others-->"
+        "body": "🔔 @rubensworks — there are no owners, but it would still be good if you find someone to [review this PR](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/45946/files) in the next few days, otherwise a maintainer will look at it. (And if you do find someone, maybe even recruit them to be a second owner to make future changes easier...)\n<!--typescript_bot_pinging-reviewers-others-->"
       }
     }
   }
diff --git a/src/_tests/fixtures/45946/result.json b/src/_tests/fixtures/45946/result.json
index 38cfa5a..8e190b2 100644
--- a/src/_tests/fixtures/45946/result.json
+++ b/src/_tests/fixtures/45946/result.json
@@ -11,7 +11,7 @@
     },
     {
       "tag": "pinging-reviewers-others",
-      "status": "🔔 @rubensworks — you're the only owner, but it would still be good if you find someone to [review this PR](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/45946/files) in the next few days, otherwise a maintainer will look at it. (And if you do find someone, maybe even recruit them to be a second owner to make future changes easier...)"
+      "status": "🔔 @rubensworks — there are no owners, but it would still be good if you find someone to [review this PR](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/45946/files) in the next few days, otherwise a maintainer will look at it. (And if you do find someone, maybe even recruit them to be a second owner to make future changes easier...)"
     }
   ],
   "shouldClose": false,
diff --git a/src/_tests/fixtures/45999/derived.json b/src/_tests/fixtures/45999/derived.json
index b6ae152..036e57d 100644
--- a/src/_tests/fixtures/45999/derived.json
+++ b/src/_tests/fixtures/45999/derived.json
@@ -10,6 +10,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Critical",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/46008/derived.json b/src/_tests/fixtures/46008/derived.json
index deacf36..3af2512 100644
--- a/src/_tests/fixtures/46008/derived.json
+++ b/src/_tests/fixtures/46008/derived.json
@@ -10,6 +10,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": true,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/46019/derived.json b/src/_tests/fixtures/46019/derived.json
index fe41a59..608c159 100644
--- a/src/_tests/fixtures/46019/derived.json
+++ b/src/_tests/fixtures/46019/derived.json
@@ -10,6 +10,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/46120/derived.json b/src/_tests/fixtures/46120/derived.json
index 53339ba..3ad554e 100644
--- a/src/_tests/fixtures/46120/derived.json
+++ b/src/_tests/fixtures/46120/derived.json
@@ -11,6 +11,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Popular",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/46191/derived.json b/src/_tests/fixtures/46191/derived.json
index 4a5208f..9e8e1d4 100644
--- a/src/_tests/fixtures/46191/derived.json
+++ b/src/_tests/fixtures/46191/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": true,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/46196/derived.json b/src/_tests/fixtures/46196/derived.json
index 1a816d2..33f28c2 100644
--- a/src/_tests/fixtures/46196/derived.json
+++ b/src/_tests/fixtures/46196/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": true,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/46279/derived.json b/src/_tests/fixtures/46279/derived.json
index 43491dd..24d6958 100644
--- a/src/_tests/fixtures/46279/derived.json
+++ b/src/_tests/fixtures/46279/derived.json
@@ -10,6 +10,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/46804/derived.json b/src/_tests/fixtures/46804/derived.json
index 68778a6..90fe9c0 100644
--- a/src/_tests/fixtures/46804/derived.json
+++ b/src/_tests/fixtures/46804/derived.json
@@ -10,6 +10,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": true,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/46879/derived.json b/src/_tests/fixtures/46879/derived.json
index 8d5f76d..c265b50 100644
--- a/src/_tests/fixtures/46879/derived.json
+++ b/src/_tests/fixtures/46879/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Popular",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/47017-blessed-and-one-owner/derived.json b/src/_tests/fixtures/47017-blessed-and-one-owner/derived.json
index eae40b7..444dc07 100644
--- a/src/_tests/fixtures/47017-blessed-and-one-owner/derived.json
+++ b/src/_tests/fixtures/47017-blessed-and-one-owner/derived.json
@@ -10,6 +10,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Critical",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/47017-blessed-and-two-owner/derived.json b/src/_tests/fixtures/47017-blessed-and-two-owner/derived.json
index c402de1..c92aad3 100644
--- a/src/_tests/fixtures/47017-blessed-and-two-owner/derived.json
+++ b/src/_tests/fixtures/47017-blessed-and-two-owner/derived.json
@@ -10,6 +10,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Critical",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/47017-blessed/derived.json b/src/_tests/fixtures/47017-blessed/derived.json
index de6391f..f47f9c7 100644
--- a/src/_tests/fixtures/47017-blessed/derived.json
+++ b/src/_tests/fixtures/47017-blessed/derived.json
@@ -10,6 +10,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Critical",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/47017/derived.json b/src/_tests/fixtures/47017/derived.json
index 504adeb..deb4676 100644
--- a/src/_tests/fixtures/47017/derived.json
+++ b/src/_tests/fixtures/47017/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Critical",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/48216/derived.json b/src/_tests/fixtures/48216/derived.json
index aefeb92..cc62693 100644
--- a/src/_tests/fixtures/48216/derived.json
+++ b/src/_tests/fixtures/48216/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/48236/derived.json b/src/_tests/fixtures/48236/derived.json
index 38d6eb9..58c25a9 100644
--- a/src/_tests/fixtures/48236/derived.json
+++ b/src/_tests/fixtures/48236/derived.json
@@ -12,6 +12,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/48652-merge-offer/derived.json b/src/_tests/fixtures/48652-merge-offer/derived.json
index 194a97b..c5f2753 100644
--- a/src/_tests/fixtures/48652-merge-offer/derived.json
+++ b/src/_tests/fixtures/48652-merge-offer/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/48652-prereq/derived.json b/src/_tests/fixtures/48652-prereq/derived.json
index 726c713..69415c8 100644
--- a/src/_tests/fixtures/48652-prereq/derived.json
+++ b/src/_tests/fixtures/48652-prereq/derived.json
@@ -11,6 +11,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/48652-retract-merge-offer-and-prerequest/derived.json b/src/_tests/fixtures/48652-retract-merge-offer-and-prerequest/derived.json
index 4a70b1e..f249de8 100644
--- a/src/_tests/fixtures/48652-retract-merge-offer-and-prerequest/derived.json
+++ b/src/_tests/fixtures/48652-retract-merge-offer-and-prerequest/derived.json
@@ -12,6 +12,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/48652-retract-merge-offer/derived.json b/src/_tests/fixtures/48652-retract-merge-offer/derived.json
index 007de66..2fab108 100644
--- a/src/_tests/fixtures/48652-retract-merge-offer/derived.json
+++ b/src/_tests/fixtures/48652-retract-merge-offer/derived.json
@@ -10,6 +10,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/48708/derived.json b/src/_tests/fixtures/48708/derived.json
index e6ebbda..4377a57 100644
--- a/src/_tests/fixtures/48708/derived.json
+++ b/src/_tests/fixtures/48708/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Critical",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/48945/derived.json b/src/_tests/fixtures/48945/derived.json
index bec0db6..cf3217e 100644
--- a/src/_tests/fixtures/48945/derived.json
+++ b/src/_tests/fixtures/48945/derived.json
@@ -10,6 +10,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/49417/derived.json b/src/_tests/fixtures/49417/derived.json
index d1383fc..9389227 100644
--- a/src/_tests/fixtures/49417/derived.json
+++ b/src/_tests/fixtures/49417/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/49548/derived.json b/src/_tests/fixtures/49548/derived.json
index 7df944e..58626e9 100644
--- a/src/_tests/fixtures/49548/derived.json
+++ b/src/_tests/fixtures/49548/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": true,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/49575/derived.json b/src/_tests/fixtures/49575/derived.json
index d7e93d7..40e76e6 100644
--- a/src/_tests/fixtures/49575/derived.json
+++ b/src/_tests/fixtures/49575/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/49575/mutations.json b/src/_tests/fixtures/49575/mutations.json
index 7516a1f..a2d1796 100644
--- a/src/_tests/fixtures/49575/mutations.json
+++ b/src/_tests/fixtures/49575/mutations.json
@@ -35,7 +35,7 @@
     "variables": {
       "input": {
         "subjectId": "MDExOlB1bGxSZXF1ZXN0NTIxMTM3NjEy",
-        "body": "🔔 @jablko — you're the only owner, but it would still be good if you find someone to [review this PR](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/49575/files) in the next few days, otherwise a maintainer will look at it. (And if you do find someone, maybe even recruit them to be a second owner to make future changes easier...)\n<!--typescript_bot_pinging-reviewers-others-->"
+        "body": "🔔 @jablko — there are no owners, but it would still be good if you find someone to [review this PR](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/49575/files) in the next few days, otherwise a maintainer will look at it. (And if you do find someone, maybe even recruit them to be a second owner to make future changes easier...)\n<!--typescript_bot_pinging-reviewers-others-->"
       }
     }
   },
diff --git a/src/_tests/fixtures/49575/result.json b/src/_tests/fixtures/49575/result.json
index b922bc2..a7eed0b 100644
--- a/src/_tests/fixtures/49575/result.json
+++ b/src/_tests/fixtures/49575/result.json
@@ -11,7 +11,7 @@
     },
     {
       "tag": "pinging-reviewers-others",
-      "status": "🔔 @jablko — you're the only owner, but it would still be good if you find someone to [review this PR](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/49575/files) in the next few days, otherwise a maintainer will look at it. (And if you do find someone, maybe even recruit them to be a second owner to make future changes easier...)"
+      "status": "🔔 @jablko — there are no owners, but it would still be good if you find someone to [review this PR](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/49575/files) in the next few days, otherwise a maintainer will look at it. (And if you do find someone, maybe even recruit them to be a second owner to make future changes easier...)"
     },
     {
       "tag": "stale-ping-d2e897-6400f4c",
diff --git a/src/_tests/fixtures/49841/derived.json b/src/_tests/fixtures/49841/derived.json
index 329555d..a274c08 100644
--- a/src/_tests/fixtures/49841/derived.json
+++ b/src/_tests/fixtures/49841/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/49841/mutations.json b/src/_tests/fixtures/49841/mutations.json
index 7e0da22..1fce78c 100644
--- a/src/_tests/fixtures/49841/mutations.json
+++ b/src/_tests/fixtures/49841/mutations.json
@@ -45,7 +45,7 @@
     "variables": {
       "input": {
         "subjectId": "MDExOlB1bGxSZXF1ZXN0NTI4OTE2Mjg5",
-        "body": "🔔 @shekari-ah — you're the only owner, but it would still be good if you find someone to [review this PR](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/49841/files) in the next few days, otherwise a maintainer will look at it. (And if you do find someone, maybe even recruit them to be a second owner to make future changes easier...)\n<!--typescript_bot_pinging-reviewers-others-->"
+        "body": "🔔 @shekari-ah — there are no owners, but it would still be good if you find someone to [review this PR](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/49841/files) in the next few days, otherwise a maintainer will look at it. (And if you do find someone, maybe even recruit them to be a second owner to make future changes easier...)\n<!--typescript_bot_pinging-reviewers-others-->"
       }
     }
   },
diff --git a/src/_tests/fixtures/49841/result.json b/src/_tests/fixtures/49841/result.json
index 4cdd9e3..4f92c5c 100644
--- a/src/_tests/fixtures/49841/result.json
+++ b/src/_tests/fixtures/49841/result.json
@@ -11,7 +11,7 @@
     },
     {
       "tag": "pinging-reviewers-others",
-      "status": "🔔 @shekari-ah — you're the only owner, but it would still be good if you find someone to [review this PR](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/49841/files) in the next few days, otherwise a maintainer will look at it. (And if you do find someone, maybe even recruit them to be a second owner to make future changes easier...)"
+      "status": "🔔 @shekari-ah — there are no owners, but it would still be good if you find someone to [review this PR](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/49841/files) in the next few days, otherwise a maintainer will look at it. (And if you do find someone, maybe even recruit them to be a second owner to make future changes easier...)"
     },
     {
       "tag": "gh-actions-complaint-4849e88",
diff --git a/src/_tests/fixtures/50429/derived.json b/src/_tests/fixtures/50429/derived.json
index 9175c20..5fcee46 100644
--- a/src/_tests/fixtures/50429/derived.json
+++ b/src/_tests/fixtures/50429/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": true,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/50429/mutations.json b/src/_tests/fixtures/50429/mutations.json
index 49f94e2..c239ee4 100644
--- a/src/_tests/fixtures/50429/mutations.json
+++ b/src/_tests/fixtures/50429/mutations.json
@@ -28,6 +28,15 @@
       }
     }
   },
+  {
+    "mutation": "mutation ($input: UpdateIssueCommentInput!) {\n  updateIssueComment(input: $input) {\n    __typename\n  }\n}\n",
+    "variables": {
+      "input": {
+        "id": "MDEyOklzc3VlQ29tbWVudDc1NTI4NDk4Mg==",
+        "body": "🔔 @SaltyAom — there are no owners, but it would still be good if you find someone to [review this PR](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/50429/files) in the next few days, otherwise a maintainer will look at it. (And if you do find someone, maybe even recruit them to be a second owner to make future changes easier...)\n<!--typescript_bot_pinging-reviewers-others-->"
+      }
+    }
+  },
   {
     "mutation": "mutation ($input: AddCommentInput!) {\n  addComment(input: $input) {\n    __typename\n  }\n}\n",
     "variables": {
diff --git a/src/_tests/fixtures/50429/result.json b/src/_tests/fixtures/50429/result.json
index d9c425b..d9067c9 100644
--- a/src/_tests/fixtures/50429/result.json
+++ b/src/_tests/fixtures/50429/result.json
@@ -12,7 +12,7 @@
     },
     {
       "tag": "pinging-reviewers-others",
-      "status": "🔔 @SaltyAom — you're the only owner, but it would still be good if you find someone to [review this PR](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/50429/files) in the next few days, otherwise a maintainer will look at it. (And if you do find someone, maybe even recruit them to be a second owner to make future changes easier...)"
+      "status": "🔔 @SaltyAom — there are no owners, but it would still be good if you find someone to [review this PR](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/50429/files) in the next few days, otherwise a maintainer will look at it. (And if you do find someone, maybe even recruit them to be a second owner to make future changes easier...)"
     },
     {
       "tag": "gh-actions-complaint-8454d08",
diff --git a/src/_tests/fixtures/50443/derived.json b/src/_tests/fixtures/50443/derived.json
index 3e64c82..92492ca 100644
--- a/src/_tests/fixtures/50443/derived.json
+++ b/src/_tests/fixtures/50443/derived.json
@@ -12,6 +12,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/51338/derived.json b/src/_tests/fixtures/51338/derived.json
index fdfaac4..98a85bc 100644
--- a/src/_tests/fixtures/51338/derived.json
+++ b/src/_tests/fixtures/51338/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": false,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Critical",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/52579-edits-infra/derived.json b/src/_tests/fixtures/52579-edits-infra/derived.json
index e686f01..aa076e1 100644
--- a/src/_tests/fixtures/52579-edits-infra/derived.json
+++ b/src/_tests/fixtures/52579-edits-infra/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": true,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/52579-edits-infra/mutations.json b/src/_tests/fixtures/52579-edits-infra/mutations.json
index cbc502e..1e51ae2 100644
--- a/src/_tests/fixtures/52579-edits-infra/mutations.json
+++ b/src/_tests/fixtures/52579-edits-infra/mutations.json
@@ -19,5 +19,14 @@
         "labelableId": "MDExOlB1bGxSZXF1ZXN0NjIyODUxNTk2"
       }
     }
+  },
+  {
+    "mutation": "mutation ($input: UpdateIssueCommentInput!) {\n  updateIssueComment(input: $input) {\n    __typename\n  }\n}\n",
+    "variables": {
+      "input": {
+        "id": "MDEyOklzc3VlQ29tbWVudDgyNjM5OTk3MA==",
+        "body": "🔔 @Phong6698 — there are no owners, but it would still be good if you find someone to [review this PR](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/52579/files) in the next few days, otherwise a maintainer will look at it. (And if you do find someone, maybe even recruit them to be a second owner to make future changes easier...)\n<!--typescript_bot_pinging-reviewers-others-->"
+      }
+    }
   }
 ]
diff --git a/src/_tests/fixtures/52579-edits-infra/result.json b/src/_tests/fixtures/52579-edits-infra/result.json
index fa2aeb3..48d6d70 100644
--- a/src/_tests/fixtures/52579-edits-infra/result.json
+++ b/src/_tests/fixtures/52579-edits-infra/result.json
@@ -12,7 +12,7 @@
     },
     {
       "tag": "pinging-reviewers-others",
-      "status": "🔔 @Phong6698 — you're the only owner, but it would still be good if you find someone to [review this PR](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/52579/files) in the next few days, otherwise a maintainer will look at it. (And if you do find someone, maybe even recruit them to be a second owner to make future changes easier...)"
+      "status": "🔔 @Phong6698 — there are no owners, but it would still be good if you find someone to [review this PR](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/52579/files) in the next few days, otherwise a maintainer will look at it. (And if you do find someone, maybe even recruit them to be a second owner to make future changes easier...)"
     }
   ],
   "shouldClose": false,
diff --git a/src/_tests/fixtures/52579/derived.json b/src/_tests/fixtures/52579/derived.json
index 1c0c7cf..5defdc9 100644
--- a/src/_tests/fixtures/52579/derived.json
+++ b/src/_tests/fixtures/52579/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": true,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/52848/derived.json b/src/_tests/fixtures/52848/derived.json
index 1f23552..5d9325e 100644
--- a/src/_tests/fixtures/52848/derived.json
+++ b/src/_tests/fixtures/52848/derived.json
@@ -10,6 +10,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": true,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/52848/mutations.json b/src/_tests/fixtures/52848/mutations.json
index 4a35c53..354e260 100644
--- a/src/_tests/fixtures/52848/mutations.json
+++ b/src/_tests/fixtures/52848/mutations.json
@@ -28,6 +28,15 @@
       }
     }
   },
+  {
+    "mutation": "mutation ($input: UpdateIssueCommentInput!) {\n  updateIssueComment(input: $input) {\n    __typename\n  }\n}\n",
+    "variables": {
+      "input": {
+        "id": "MDEyOklzc3VlQ29tbWVudDgzNjMyOTAwMg==",
+        "body": "🔔 @Runtu4378 — there are no owners, but it would still be good if you find someone to [review this PR](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/52848/files) in the next few days, otherwise a maintainer will look at it. (And if you do find someone, maybe even recruit them to be a second owner to make future changes easier...)\n<!--typescript_bot_pinging-reviewers-others-->"
+      }
+    }
+  },
   {
     "mutation": "mutation ($input: AddCommentInput!) {\n  addComment(input: $input) {\n    __typename\n  }\n}\n",
     "variables": {
diff --git a/src/_tests/fixtures/52848/result.json b/src/_tests/fixtures/52848/result.json
index 7a53307..1ae5bfc 100644
--- a/src/_tests/fixtures/52848/result.json
+++ b/src/_tests/fixtures/52848/result.json
@@ -11,7 +11,7 @@
     },
     {
       "tag": "pinging-reviewers-others",
-      "status": "🔔 @Runtu4378 — you're the only owner, but it would still be good if you find someone to [review this PR](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/52848/files) in the next few days, otherwise a maintainer will look at it. (And if you do find someone, maybe even recruit them to be a second owner to make future changes easier...)"
+      "status": "🔔 @Runtu4378 — there are no owners, but it would still be good if you find someone to [review this PR](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/52848/files) in the next few days, otherwise a maintainer will look at it. (And if you do find someone, maybe even recruit them to be a second owner to make future changes easier...)"
     },
     {
       "tag": "merge-offer",
diff --git a/src/_tests/fixtures/53121/derived.json b/src/_tests/fixtures/53121/derived.json
index d817c0c..efc8779 100644
--- a/src/_tests/fixtures/53121/derived.json
+++ b/src/_tests/fixtures/53121/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": true,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Popular",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/55035/derived.json b/src/_tests/fixtures/55035/derived.json
index cc87afc..8fea3db 100644
--- a/src/_tests/fixtures/55035/derived.json
+++ b/src/_tests/fixtures/55035/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": true,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Well-liked by everyone",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/55210/_downloads.json b/src/_tests/fixtures/55210/_downloads.json
new file mode 100644
index 0000000..7526a8a
--- /dev/null
+++ b/src/_tests/fixtures/55210/_downloads.json
@@ -0,0 +1,3 @@
+{
+  "xald-parse-sdk": 0
+}
diff --git a/src/_tests/fixtures/55210/_files.json b/src/_tests/fixtures/55210/_files.json
new file mode 100644
index 0000000..e907f78
--- /dev/null
+++ b/src/_tests/fixtures/55210/_files.json
@@ -0,0 +1,8 @@
+{
+  "fc6b2c11d8ef528a4a2b554b0fe7071b6959f9fe:types/xald-parse-sdk/package.json": "{\n    \"private\": true,\n    \"types\": \"index\",\n    \"typesVersions\": {\n        \"<=3.6\": {\n            \"*\": [\n                \"ts3.6/*\"\n            ]\n        }\n    }\n}\n",
+  "fc6b2c11d8ef528a4a2b554b0fe7071b6959f9fe:types/xald-parse-sdk/ts3.6/tsconfig.json": "{\n    \"compilerOptions\": {\n        \"module\": \"commonjs\",\n        \"lib\": [\n            \"es6\",\n            \"dom\"\n        ],\n        \"noImplicitAny\": true,\n        \"noImplicitThis\": true,\n        \"strictNullChecks\": true,\n        \"strictFunctionTypes\": true,\n        \"baseUrl\": \"../../\",\n        \"typeRoots\": [\n            \"../../\"\n        ],\n        \"types\": [],\n        \"noEmit\": true,\n        \"forceConsistentCasingInFileNames\": true\n    },\n    \"files\": [\n        \"index.d.ts\",\n        \"xald-parse-sdk-tests.ts\"\n    ]\n}\n",
+  "fc6b2c11d8ef528a4a2b554b0fe7071b6959f9fe:types/xald-parse-sdk/ts3.6/tslint.json": "{\n    \"extends\": \"dtslint/dt.json\",\n    \"rules\": {\n        \"ban-types\": false,\n        \"no-unnecessary-generics\": false\n    }\n}\n",
+  "fc6b2c11d8ef528a4a2b554b0fe7071b6959f9fe:types/xald-parse-sdk/tsconfig.json": "{\n    \"compilerOptions\": {\n        \"module\": \"commonjs\",\n        \"lib\": [\n            \"es6\",\n            \"dom\"\n        ],\n        \"noImplicitAny\": true,\n        \"noImplicitThis\": true,\n        \"strictFunctionTypes\": true,\n        \"strictNullChecks\": true,\n        \"baseUrl\": \"../\",\n        \"typeRoots\": [\n            \"../\"\n        ],\n        \"types\": [],\n        \"noEmit\": true,\n        \"forceConsistentCasingInFileNames\": true\n    },\n    \"files\": [\n        \"index.d.ts\",\n        \"xald-parse-sdk-tests.ts\"\n    ]\n}\n",
+  "fc6b2c11d8ef528a4a2b554b0fe7071b6959f9fe:types/xald-parse-sdk/tslint.json": "{\n    \"extends\": \"dtslint/dt.json\",\n    \"rules\": {\n        \"ban-types\": false,\n        \"no-unnecessary-generics\": false\n    }\n}",
+  "fc6b2c11d8ef528a4a2b554b0fe7071b6959f9fe:types/xald-parse-sdk/index.d.ts": "// Type definitions for xald-parse-sdk 1.0\n// Project: https://parseplatform.org/\n// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped\n// Minimum TypeScript Version: 3.5\n\n/// <reference types=\"node\" />\n/// <reference path=\"taobao.d.ts\" />\n\nimport { EventEmitter } from \"events\";\n\ndeclare enum ErrorCode {\n    OTHER_CAUSE = -1,\n    INTERNAL_SERVER_ERROR = 1,\n    CONNECTION_FAILED = 100,\n    OBJECT_NOT_FOUND = 101,\n    INVALID_QUERY = 102,\n    INVALID_CLASS_NAME = 103,\n    MISSING_OBJECT_ID = 104,\n    INVALID_KEY_NAME = 105,\n    INVALID_POINTER = 106,\n    INVALID_JSON = 107,\n    COMMAND_UNAVAILABLE = 108,\n    NOT_INITIALIZED = 109,\n    INCORRECT_TYPE = 111,\n    INVALID_CHANNEL_NAME = 112,\n    PUSH_MISCONFIGURED = 115,\n    OBJECT_TOO_LARGE = 116,\n    OPERATION_FORBIDDEN = 119,\n    CACHE_MISS = 120,\n    INVALID_NESTED_KEY = 121,\n    INVALID_FILE_NAME = 122,\n    INVALID_ACL = 123,\n    TIMEOUT = 124,\n    INVALID_EMAIL_ADDRESS = 125,\n    MISSING_CONTENT_TYPE = 126,\n    MISSING_CONTENT_LENGTH = 127,\n    INVALID_CONTENT_LENGTH = 128,\n    FILE_TOO_LARGE = 129,\n    FILE_SAVE_ERROR = 130,\n    DUPLICATE_VALUE = 137,\n    INVALID_ROLE_NAME = 139,\n    EXCEEDED_QUOTA = 140,\n    SCRIPT_FAILED = 141,\n    VALIDATION_ERROR = 142,\n    INVALID_IMAGE_DATA = 150,\n    UNSAVED_FILE_ERROR = 151,\n    INVALID_PUSH_TIME_ERROR = 152,\n    FILE_DELETE_ERROR = 153,\n    REQUEST_LIMIT_EXCEEDED = 155,\n    INVALID_EVENT_NAME = 160,\n    USERNAME_MISSING = 200,\n    PASSWORD_MISSING = 201,\n    USERNAME_TAKEN = 202,\n    EMAIL_TAKEN = 203,\n    EMAIL_MISSING = 204,\n    EMAIL_NOT_FOUND = 205,\n    SESSION_MISSING = 206,\n    MUST_CREATE_USER_THROUGH_SIGNUP = 207,\n    ACCOUNT_ALREADY_LINKED = 208,\n    INVALID_SESSION_TOKEN = 209,\n    LINKED_ID_MISSING = 250,\n    INVALID_LINKED_SESSION = 251,\n    UNSUPPORTED_SERVICE = 252,\n    AGGREGATE_ERROR = 600,\n    FILE_READ_ERROR = 601,\n    X_DOMAIN_REQUEST = 602,\n}\n\ndeclare global {\n    namespace Parse {\n        let applicationId: string;\n        let javaScriptKey: string | undefined;\n        let liveQueryServerURL: string;\n        let masterKey: string | undefined;\n        let serverAuthToken: string | undefined;\n        let serverAuthType: string | undefined;\n        let serverURL: string;\n        let secret: string;\n        let idempotency: boolean;\n        let encryptedUser: boolean;\n        let env: string;\n        let cloudAppId: string;\n        let cloudTimeOut: string;\n\n        interface BatchSizeOption {\n            batchSize?: number | undefined;\n        }\n\n        interface CascadeSaveOption {\n            /** If `false`, nested objects will not be saved (default is `true`). */\n            cascadeSave?: boolean | undefined;\n        }\n\n        interface SuccessOption {\n            success?: Function | undefined;\n        }\n\n        interface ErrorOption {\n            error?: Function | undefined;\n        }\n\n        interface ContextOption {\n            context?: {[key: string]: any};\n        }\n\n        interface FullOptions {\n            success?: Function | undefined;\n            error?: Function | undefined;\n            useMasterKey?: boolean | undefined;\n            sessionToken?: string | undefined;\n            installationId?: string | undefined;\n            progress?: Function | undefined;\n        }\n\n        interface RequestOptions {\n            useMasterKey?: boolean | undefined;\n            sessionToken?: string | undefined;\n            installationId?: string | undefined;\n            batchSize?: number | undefined;\n            include?: string | string[] | undefined;\n            progress?: Function | undefined;\n        }\n\n        interface SuccessFailureOptions extends SuccessOption, ErrorOption {}\n\n        interface SignUpOptions {\n            useMasterKey?: boolean | undefined;\n            installationId?: string | undefined;\n        }\n\n        interface SessionTokenOption {\n            sessionToken?: string | undefined;\n        }\n\n        interface WaitOption {\n            /**\n             * Set to true to wait for the server to confirm success\n             * before triggering an event.\n             */\n            wait?: boolean | undefined;\n        }\n\n        interface UseMasterKeyOption {\n            /**\n             * In Cloud Code and Node only, causes the Master Key to be used for this request.\n             */\n            useMasterKey?: boolean | undefined;\n        }\n\n        interface ScopeOptions extends SessionTokenOption, UseMasterKeyOption {}\n\n        interface SilentOption {\n            /**\n             * Set to true to avoid firing the event.\n             */\n            silent?: boolean | undefined;\n        }\n\n        interface Pointer {\n            __type: string;\n            className: string;\n            objectId: string;\n        }\n\n        interface AuthData {\n            [key: string]: any;\n        }\n\n        /**\n         * Interface declaration for Authentication Providers\n         * https://parseplatform.org/Parse-SDK-JS/api/master/AuthProvider.html\n         */\n        interface AuthProvider {\n            /**\n             * Called when _linkWith isn't passed authData. Handle your own authentication here.\n             */\n            authenticate: () => void;\n            /**\n             * (Optional) Called when service is unlinked. Handle any cleanup here.\n             */\n            deauthenticate?: (() => void) | undefined;\n            /**\n             * Unique identifier for this Auth Provider.\n             */\n            getAuthType: () => string;\n            /**\n             * Called when auth data is syncronized. Can be used to determine if authData is still valid\n             */\n            restoreAuthentication: () => boolean;\n        }\n\n        interface BaseAttributes {\n            createdAt: Date;\n            objectId: string;\n            updatedAt: Date;\n        }\n\n        interface CommonAttributes {\n            ACL: ACL;\n        }\n\n        interface JSONBaseAttributes {\n            createdAt: string;\n            objectId: string;\n            updatedAt: string;\n        }\n\n        /**\n         * Creates a new ACL.\n         * If no argument is given, the ACL has no permissions for anyone.\n         * If the argument is a Parse.User, the ACL will have read and write\n         *   permission for only that user.\n         * If the argument is any other JSON object, that object will be interpretted\n         *   as a serialized ACL created with toJSON().\n         * @see Parse.Object#setACL\n         *\n         * <p>An ACL, or Access Control List can be added to any\n         * <code>Parse.Object</code> to restrict access to only a subset of users\n         * of your application.</p>\n         */\n        class ACL {\n            permissionsById: any;\n\n            constructor(arg1?: any);\n\n            setPublicReadAccess(allowed: boolean): void;\n            getPublicReadAccess(): boolean;\n\n            setPublicWriteAccess(allowed: boolean): void;\n            getPublicWriteAccess(): boolean;\n\n            setReadAccess(userId: User | string, allowed: boolean): void;\n            getReadAccess(userId: User | string): boolean;\n\n            setWriteAccess(userId: User | string, allowed: boolean): void;\n            getWriteAccess(userId: User | string): boolean;\n\n            setRoleReadAccess(role: Role | string, allowed: boolean): void;\n            getRoleReadAccess(role: Role | string): boolean;\n\n            setRoleWriteAccess(role: Role | string, allowed: boolean): void;\n            getRoleWriteAccess(role: Role | string): boolean;\n\n            toJSON(): any;\n        }\n\n        /**\n         * A Parse.File is a local representation of a file that is saved to the Parse\n         * cloud.\n         * @param name The file's name. This will be prefixed by a unique\n         *     value once the file has finished saving. The file name must begin with\n         *     an alphanumeric character, and consist of alphanumeric characters,\n         *     periods, spaces, underscores, or dashes.\n         * @param data The data for the file, as either:\n         *     1. an Array of byte value Numbers, or\n         *     2. an Object like { base64: \"...\" } with a base64-encoded String.\n         *     3. a File object selected with a file upload control. (3) only works\n         *        in Firefox 3.6+, Safari 6.0.2+, Chrome 7+, and IE 10+.\n         *        For example:<pre>\n         * var fileUploadControl = $(\"#profilePhotoFileUpload\")[0];\n         * if (fileUploadControl.files.length > 0) {\n         *   var file = fileUploadControl.files[0];\n         *   var name = \"photo.jpg\";\n         *   var parseFile = new Parse.File(name, file);\n         *   parseFile.save().then(function() {\n         *     // The file has been saved to Parse.\n         *   }, function(error) {\n         *     // The file either could not be read, or could not be saved to Parse.\n         *   });\n         * }</pre>\n         * @param type Optional Content-Type header to use for the file. If\n         *     this is omitted, the content type will be inferred from the name's\n         *     extension.\n         */\n        class File {\n            constructor(\n                name: string,\n                data: number[] | { base64: string } | { size: number; type: string } | { uri: string },\n                type?: string,\n            );\n            /**\n             * Return the data for the file, downloading it if not already present.\n             * Data is present if initialized with Byte Array, Base64 or Saved with Uri.\n             * Data is cleared if saved with File object selected with a file upload control\n             *\n             * @returns Promise that is resolved with base64 data\n             */\n            getData(): Promise<string>;\n            url(options?: { forceSecure?: boolean | undefined }): string;\n            metadata(): Record<string, any>;\n            tags(): Record<string, any>;\n            name(): string;\n            save(options?: FullOptions): Promise<File>;\n            cancel(): void;\n            destroy(): Promise<File>;\n            toJSON(): { __type: string; name: string; url: string };\n            equals(other: File): boolean;\n            setMetadata(metadata: Record<string, any>): void;\n            addMetadata(key: string, value: any)"
+}
diff --git a/src/_tests/fixtures/55210/_response.json b/src/_tests/fixtures/55210/_response.json
new file mode 100644
index 0000000..9a1ac8b
--- /dev/null
+++ b/src/_tests/fixtures/55210/_response.json
@@ -0,0 +1,453 @@
+{
+  "data": {
+    "repository": {
+      "id": "MDEwOlJlcG9zaXRvcnk2MDkzMzE2",
+      "pullRequest": {
+        "id": "MDExOlB1bGxSZXF1ZXN0NzE0NzAxNDcz",
+        "title": "Extend xald-parse-sdk module types",
+        "createdAt": "2021-08-18T02:55:27Z",
+        "author": {
+          "login": "Dssssds",
+          "__typename": "User"
+        },
+        "authorAssociation": "FIRST_TIME_CONTRIBUTOR",
+        "baseRef": {
+          "name": "master",
+          "__typename": "Ref"
+        },
+        "labels": {
+          "nodes": [
+            {
+              "name": "New Definition",
+              "__typename": "Label"
+            },
+            {
+              "name": "The CI failed",
+              "__typename": "Label"
+            },
+            {
+              "name": "Check Config",
+              "__typename": "Label"
+            },
+            {
+              "name": "Huge Change",
+              "__typename": "Label"
+            }
+          ],
+          "__typename": "LabelConnection"
+        },
+        "isDraft": false,
+        "mergeable": "MERGEABLE",
+        "number": 55210,
+        "state": "OPEN",
+        "headRefOid": "fc6b2c11d8ef528a4a2b554b0fe7071b6959f9fe",
+        "changedFiles": 11,
+        "additions": 7590,
+        "deletions": 0,
+        "timelineItems": {
+          "nodes": [
+            {
+              "actor": {
+                "login": "typescript-bot",
+                "__typename": "User"
+              },
+              "createdAt": "2021-08-18T03:01:01Z",
+              "projectColumnName": "Needs Maintainer Action",
+              "__typename": "MovedColumnsInProjectEvent"
+            },
+            {
+              "actor": {
+                "login": "typescript-bot",
+                "__typename": "User"
+              },
+              "createdAt": "2021-08-24T21:37:02Z",
+              "projectColumnName": "Needs Author Action",
+              "__typename": "MovedColumnsInProjectEvent"
+            },
+            {
+              "actor": {
+                "login": "typescript-bot",
+                "__typename": "User"
+              },
+              "createdAt": "2021-08-24T22:04:00Z",
+              "projectColumnName": "Waiting for Code Reviews",
+              "__typename": "MovedColumnsInProjectEvent"
+            },
+            {
+              "actor": {
+                "login": "typescript-bot",
+                "__typename": "User"
+              },
+              "createdAt": "2021-08-24T22:05:28Z",
+              "projectColumnName": "Needs Author Action",
+              "__typename": "MovedColumnsInProjectEvent"
+            }
+          ],
+          "__typename": "PullRequestTimelineItemsConnection"
+        },
+        "reviews": {
+          "nodes": [
+            {
+              "author": {
+                "login": "peterblazejewicz",
+                "__typename": "User"
+              },
+              "commit": {
+                "oid": "23d91a572fd51e64a17babfb662883885f9f5186",
+                "__typename": "Commit"
+              },
+              "comments": {
+                "nodes": [],
+                "__typename": "PullRequestReviewCommentConnection"
+              },
+              "authorAssociation": "MEMBER",
+              "state": "COMMENTED",
+              "submittedAt": "2021-08-23T19:16:42Z",
+              "url": "https://github.com/DefinitelyTyped/DefinitelyTyped/pull/55210#pullrequestreview-736480341",
+              "__typename": "PullRequestReview"
+            },
+            {
+              "author": {
+                "login": "RaschidJFR",
+                "__typename": "User"
+              },
+              "commit": {
+                "oid": "23d91a572fd51e64a17babfb662883885f9f5186",
+                "__typename": "Commit"
+              },
+              "comments": {
+                "nodes": [],
+                "__typename": "PullRequestReviewCommentConnection"
+              },
+              "authorAssociation": "CONTRIBUTOR",
+              "state": "CHANGES_REQUESTED",
+              "submittedAt": "2021-08-24T21:36:25Z",
+              "url": "https://github.com/DefinitelyTyped/DefinitelyTyped/pull/55210#pullrequestreview-737715006",
+              "__typename": "PullRequestReview"
+            },
+            {
+              "author": {
+                "login": "peterblazejewicz",
+                "__typename": "User"
+              },
+              "commit": {
+                "oid": "23d91a572fd51e64a17babfb662883885f9f5186",
+                "__typename": "Commit"
+              },
+              "comments": {
+                "nodes": [
+                  {
+                    "author": {
+                      "login": "peterblazejewicz",
+                      "__typename": "User"
+                    },
+                    "createdAt": "2021-08-24T22:02:42Z",
+                    "__typename": "PullRequestReviewComment"
+                  }
+                ],
+                "__typename": "PullRequestReviewCommentConnection"
+              },
+              "authorAssociation": "MEMBER",
+              "state": "COMMENTED",
+              "submittedAt": "2021-08-24T22:02:43Z",
+              "url": "https://github.com/DefinitelyTyped/DefinitelyTyped/pull/55210#pullrequestreview-737731087",
+              "__typename": "PullRequestReview"
+            }
+          ],
+          "__typename": "PullRequestReviewConnection"
+        },
+        "commits": {
+          "totalCount": 2,
+          "nodes": [
+            {
+              "commit": {
+                "checkSuites": {
+                  "nodes": [
+                    {
+                      "databaseId": 3585693499,
+                      "app": {
+                        "name": "GitHub Actions",
+                        "__typename": "App"
+                      },
+                      "conclusion": "FAILURE",
+                      "resourcePath": "/DefinitelyTyped/DefinitelyTyped/commit/fc6b2c11d8ef528a4a2b554b0fe7071b6959f9fe/checks?check_suite_id=3585693499",
+                      "status": "COMPLETED",
+                      "url": "https://github.com/DefinitelyTyped/DefinitelyTyped/commit/fc6b2c11d8ef528a4a2b554b0fe7071b6959f9fe/checks?check_suite_id=3585693499",
+                      "checkRuns": {
+                        "nodes": [
+                          {
+                            "title": "test",
+                            "__typename": "CheckRun"
+                          }
+                        ],
+                        "__typename": "CheckRunConnection"
+                      },
+                      "__typename": "CheckSuite"
+                    },
+                    {
+                      "databaseId": 3585694165,
+                      "app": {
+                        "name": "Azure Pipelines",
+                        "__typename": "App"
+                      },
+                      "conclusion": "FAILURE",
+                      "resourcePath": "/DefinitelyTyped/DefinitelyTyped/commit/fc6b2c11d8ef528a4a2b554b0fe7071b6959f9fe/checks?check_suite_id=3585694165",
+                      "status": "COMPLETED",
+                      "url": "https://github.com/DefinitelyTyped/DefinitelyTyped/commit/fc6b2c11d8ef528a4a2b554b0fe7071b6959f9fe/checks?check_suite_id=3585694165",
+                      "checkRuns": {
+                        "nodes": [
+                          {
+                            "title": "Build #20210824.106 failed",
+                            "__typename": "CheckRun"
+                          }
+                        ],
+                        "__typename": "CheckRunConnection"
+                      },
+                      "__typename": "CheckSuite"
+                    }
+                  ],
+                  "__typename": "CheckSuiteConnection"
+                },
+                "status": null,
+                "authoredDate": "2021-08-24T22:03:24Z",
+                "committedDate": "2021-08-24T22:03:24Z",
+                "pushedDate": "2021-08-24T22:03:32Z",
+                "oid": "fc6b2c11d8ef528a4a2b554b0fe7071b6959f9fe",
+                "__typename": "Commit"
+              },
+              "__typename": "PullRequestCommit"
+            }
+          ],
+          "__typename": "PullRequestCommitConnection"
+        },
+        "comments": {
+          "totalCount": 8,
+          "nodes": [
+            {
+              "id": "IC_kwDOAFz6BM41sLf3",
+              "author": {
+                "login": "typescript-bot",
+                "__typename": "User"
+              },
+              "databaseId": 900773879,
+              "body": "@Dssssds Thank you for submitting this PR! I see this is your first time submitting to DefinitelyTyped 👋 — I'm the local bot who will help you through the process of getting things through.\n\n***This is a live comment which I will keep updated.***\n\n## 1 package in this PR\n\n* `xald-parse-sdk` (*new!*) — [on npm](https://www.npmjs.com/package/xald-parse-sdk), [on unpkg](https://unpkg.com/browse/xald-parse-sdk@latest/)\n  - Config files to check:\n    - [`xald-parse-sdk/ts3.6/tslint.json`](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/55210/files/fc6b2c11d8ef528a4a2b554b0fe7071b6959f9fe#diff-bfc1b741f010db81cead2207a1b4172e9a907b81e1b2e00aaf5634ec6e5f3e7b): not [the expected form](https://github.com/DefinitelyTyped/DefinitelyTyped#user-content-linter-tslintjson) (check: `rules`)\n    - [`xald-parse-sdk/tslint.json`](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/55210/files/fc6b2c11d8ef528a4a2b554b0fe7071b6959f9fe#diff-c9e04178a7818e4f645fba6421d9c18e7f9e8be46343ae904ed4ada61296c628): not [the expected form](https://github.com/DefinitelyTyped/DefinitelyTyped#user-content-linter-tslintjson) (check: `rules`)\n\n## Code Reviews\n\nThis PR adds a new definition, so it needs to be reviewed by a DT maintainer before it can be merged.\n\nYou can test the changes of this PR [in the Playground](https://www.typescriptlang.org/play/?dtPR=55210&install-plugin=playground-dt-review).\n\n## Status\n\n * ✅ No merge conflicts\n * ❌ Continuous integration tests have failed\n * 🕐 Only a DT maintainer can approve changes when there are new packages added\n\nOnce every item on this list is checked, I'll ask you for permission to merge and publish the changes.\n\n## Inactive\n\nThis PR has been inactive for 20 days.\n\n----------------------\n... diagnostics scrubbed ...\n<!--typescript_bot_welcome-->",
+              "createdAt": "2021-08-18T02:56:05Z",
+              "reactions": {
+                "nodes": [],
+                "__typename": "ReactionConnection"
+              },
+              "__typename": "IssueComment"
+            },
+            {
+              "id": "IC_kwDOAFz6BM41sLgG",
+              "author": {
+                "login": "typescript-bot",
+                "__typename": "User"
+              },
+              "databaseId": 900773894,
+              "body": "🔔 @Dssssds — you're the only owner, but it would still be good if you find someone to [review this PR](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/55210/files) in the next few days, otherwise a maintainer will look at it. (And if you do find someone, maybe even recruit them to be a second owner to make future changes easier...)\n<!--typescript_bot_pinging-reviewers-others-->",
+              "createdAt": "2021-08-18T02:56:07Z",
+              "reactions": {
+                "nodes": [],
+                "__typename": "ReactionConnection"
+              },
+              "__typename": "IssueComment"
+            },
+            {
+              "id": "IC_kwDOAFz6BM41sLi4",
+              "author": {
+                "login": "Dssssds",
+                "__typename": "User"
+              },
+              "databaseId": 900774072,
+              "body": "Created for the first time, Taobao parse expanded",
+              "createdAt": "2021-08-18T02:56:35Z",
+              "reactions": {
+                "nodes": [],
+                "__typename": "ReactionConnection"
+              },
+              "__typename": "IssueComment"
+            },
+            {
+              "id": "IC_kwDOAFz6BM414qDd",
+              "author": {
+                "login": "peterblazejewicz",
+                "__typename": "User"
+              },
+              "databaseId": 904044765,
+              "body": "what are those all Github handles? Why are you adding those people? \r\nAre those coming from copied @types/parse header? What's the reason?\r\nis your intent to create types only for 'tabao' extension?",
+              "createdAt": "2021-08-23T19:15:09Z",
+              "reactions": {
+                "nodes": [],
+                "__typename": "ReactionConnection"
+              },
+              "__typename": "IssueComment"
+            },
+            {
+              "id": "IC_kwDOAFz6BM416Gp_",
+              "author": {
+                "login": "LinusU",
+                "__typename": "User"
+              },
+              "databaseId": 904424063,
+              "body": "I would not like to be a maintainer of these new typings ☺️ ",
+              "createdAt": "2021-08-24T08:14:17Z",
+              "reactions": {
+                "nodes": [],
+                "__typename": "ReactionConnection"
+              },
+              "__typename": "IssueComment"
+            },
+            {
+              "id": "IC_kwDOAFz6BM417HXj",
+              "author": {
+                "login": "rdhelms",
+                "__typename": "User"
+              },
+              "databaseId": 904689123,
+              "body": "I also would like to be removed from the maintainers list here 👍🏻",
+              "createdAt": "2021-08-24T14:23:51Z",
+              "reactions": {
+                "nodes": [],
+                "__typename": "ReactionConnection"
+              },
+              "__typename": "IssueComment"
+            },
+            {
+              "id": "IC_kwDOAFz6BM418RxI",
+              "author": {
+                "login": "typescript-bot",
+                "__typename": "User"
+              },
+              "databaseId": 904993864,
+              "body": "@Dssssds One or more reviewers has requested changes. Please address their comments. I'll be back once they sign off or you've pushed new commits. Thank you!\n<!--typescript_bot_reviewer-complaint-23d91a5-->",
+              "createdAt": "2021-08-24T21:37:03Z",
+              "reactions": {
+                "nodes": [],
+                "__typename": "ReactionConnection"
+              },
+              "__typename": "IssueComment"
+            },
+            {
+              "id": "IC_kwDOAFz6BM418VN8",
+              "author": {
+                "login": "typescript-bot",
+                "__typename": "User"
+              },
+              "databaseId": 905007996,
+              "body": "@Dssssds The CI build failed! Please [review the logs for more information](https://github.com/DefinitelyTyped/DefinitelyTyped/commit/fc6b2c11d8ef528a4a2b554b0fe7071b6959f9fe/checks?check_suite_id=3585693499).\n\nOnce you've pushed the fixes, the build will automatically re-run. Thanks!\n\n**Note: builds which are failing do not end up on the list of PRs for the DT maintainers to review.**\n<!--typescript_bot_gh-actions-complaint-fc6b2c1-->",
+              "createdAt": "2021-08-24T22:05:28Z",
+              "reactions": {
+                "nodes": [],
+                "__typename": "ReactionConnection"
+              },
+              "__typename": "IssueComment"
+            }
+          ],
+          "__typename": "IssueCommentConnection"
+        },
+        "files": {
+          "totalCount": 11,
+          "nodes": [
+            {
+              "path": "types/xald-parse-sdk/index.d.ts",
+              "additions": 1724,
+              "deletions": 0,
+              "__typename": "PullRequestChangedFile"
+            },
+            {
+              "path": "types/xald-parse-sdk/package.json",
+              "additions": 11,
+              "deletions": 0,
+              "__typename": "PullRequestChangedFile"
+            },
+            {
+              "path": "types/xald-parse-sdk/taobao.d.ts",
+              "additions": 3,
+              "deletions": 0,
+              "__typename": "PullRequestChangedFile"
+            },
+            {
+              "path": "types/xald-parse-sdk/ts3.6/index.d.ts",
+              "additions": 1712,
+              "deletions": 0,
+              "__typename": "PullRequestChangedFile"
+            },
+            {
+              "path": "types/xald-parse-sdk/ts3.6/taobao.d.ts",
+              "additions": 3,
+              "deletions": 0,
+              "__typename": "PullRequestChangedFile"
+            },
+            {
+              "path": "types/xald-parse-sdk/ts3.6/tsconfig.json",
+              "additions": 24,
+              "deletions": 0,
+              "__typename": "PullRequestChangedFile"
+            },
+            {
+              "path": "types/xald-parse-sdk/ts3.6/tslint.json",
+              "additions": 7,
+              "deletions": 0,
+              "__typename": "PullRequestChangedFile"
+            },
+            {
+              "path": "types/xald-parse-sdk/ts3.6/xald-parse-sdk-tests.ts",
+              "additions": 2041,
+              "deletions": 0,
+              "__typename": "PullRequestChangedFile"
+            },
+            {
+              "path": "types/xald-parse-sdk/tsconfig.json",
+              "additions": 24,
+              "deletions": 0,
+              "__typename": "PullRequestChangedFile"
+            },
+            {
+              "path": "types/xald-parse-sdk/tslint.json",
+              "additions": 7,
+              "deletions": 0,
+              "__typename": "PullRequestChangedFile"
+            },
+            {
+              "path": "types/xald-parse-sdk/xald-parse-sdk-tests.ts",
+              "additions": 2034,
+              "deletions": 0,
+              "__typename": "PullRequestChangedFile"
+            }
+          ],
+          "pageInfo": {
+            "hasNextPage": false,
+            "endCursor": "MTE",
+            "__typename": "PageInfo"
+          },
+          "__typename": "PullRequestChangedFileConnection"
+        },
+        "projectCards": {
+          "nodes": [
+            {
+              "id": "PRC_lALOAFz6BM4AORWwzgP-3Pw",
+              "project": {
+                "id": "MDc6UHJvamVjdDM3NDExMDQ=",
+                "number": 5,
+                "name": "New Pull Request Status Board",
+                "__typename": "Project"
+              },
+              "column": {
+                "id": "MDEzOlByb2plY3RDb2x1bW43NTUyOTI0",
+                "name": "Needs Author Action",
+                "__typename": "ProjectColumn"
+              },
+              "__typename": "ProjectCard"
+            }
+          ],
+          "__typename": "ProjectCardConnection"
+        },
+        "__typename": "PullRequest"
+      },
+      "__typename": "Repository"
+    }
+  },
+  "loading": false,
+  "networkStatus": 7
+}
diff --git a/src/_tests/fixtures/55210/derived.json b/src/_tests/fixtures/55210/derived.json
new file mode 100644
index 0000000..63170f9
--- /dev/null
+++ b/src/_tests/fixtures/55210/derived.json
@@ -0,0 +1,89 @@
+{
+  "type": "info",
+  "now": "2021-09-14T20:02:38.482Z",
+  "pr_number": 55210,
+  "author": "Dssssds",
+  "headCommitOid": "fc6b2c11d8ef528a4a2b554b0fe7071b6959f9fe",
+  "lastPushDate": "2021-08-24T22:03:32.000Z",
+  "lastActivityDate": "2021-08-24T22:03:32.000Z",
+  "hasMergeConflict": false,
+  "isFirstContribution": true,
+  "tooManyFiles": false,
+  "hugeChange": true,
+  "popularityLevel": "Well-liked by everyone",
+  "pkgInfo": [
+    {
+      "name": "xald-parse-sdk",
+      "kind": "add",
+      "files": [
+        {
+          "path": "types/xald-parse-sdk/index.d.ts",
+          "kind": "definition"
+        },
+        {
+          "path": "types/xald-parse-sdk/package.json",
+          "kind": "package-meta-ok"
+        },
+        {
+          "path": "types/xald-parse-sdk/taobao.d.ts",
+          "kind": "definition"
+        },
+        {
+          "path": "types/xald-parse-sdk/ts3.6/index.d.ts",
+          "kind": "definition"
+        },
+        {
+          "path": "types/xald-parse-sdk/ts3.6/taobao.d.ts",
+          "kind": "definition"
+        },
+        {
+          "path": "types/xald-parse-sdk/ts3.6/tsconfig.json",
+          "kind": "package-meta-ok"
+        },
+        {
+          "path": "types/xald-parse-sdk/ts3.6/tslint.json",
+          "kind": "package-meta",
+          "suspect": "not [the expected form](https://github.com/DefinitelyTyped/DefinitelyTyped#user-content-linter-tslintjson) (check: `rules`)"
+        },
+        {
+          "path": "types/xald-parse-sdk/ts3.6/xald-parse-sdk-tests.ts",
+          "kind": "test"
+        },
+        {
+          "path": "types/xald-parse-sdk/tsconfig.json",
+          "kind": "package-meta-ok"
+        },
+        {
+          "path": "types/xald-parse-sdk/tslint.json",
+          "kind": "package-meta",
+          "suspect": "not [the expected form](https://github.com/DefinitelyTyped/DefinitelyTyped#user-content-linter-tslintjson) (check: `rules`)"
+        },
+        {
+          "path": "types/xald-parse-sdk/xald-parse-sdk-tests.ts",
+          "kind": "test"
+        }
+      ],
+      "owners": [],
+      "addedOwners": [],
+      "deletedOwners": [],
+      "popularityLevel": "Well-liked by everyone"
+    }
+  ],
+  "reviews": [
+    {
+      "type": "stale",
+      "reviewer": "peterblazejewicz",
+      "date": "2021-08-24T22:02:43.000Z",
+      "abbrOid": "23d91a5"
+    },
+    {
+      "type": "stale",
+      "reviewer": "RaschidJFR",
+      "date": "2021-08-24T21:36:25.000Z",
+      "abbrOid": "23d91a5"
+    }
+  ],
+  "mainBotCommentID": 900773879,
+  "ciResult": "fail",
+  "ciUrl": "https://github.com/DefinitelyTyped/DefinitelyTyped/commit/fc6b2c11d8ef528a4a2b554b0fe7071b6959f9fe/checks?check_suite_id=3585693499"
+}
diff --git a/src/_tests/fixtures/55210/mutations.json b/src/_tests/fixtures/55210/mutations.json
new file mode 100644
index 0000000..7b4708c
--- /dev/null
+++ b/src/_tests/fixtures/55210/mutations.json
@@ -0,0 +1,11 @@
+[
+  {
+    "mutation": "mutation ($input: UpdateIssueCommentInput!) {\n  updateIssueComment(input: $input) {\n    __typename\n  }\n}\n",
+    "variables": {
+      "input": {
+        "id": "IC_kwDOAFz6BM41sLf3",
+        "body": "@Dssssds Thank you for submitting this PR! I see this is your first time submitting to DefinitelyTyped 👋 — I'm the local bot who will help you through the process of getting things through.\n\n***This is a live comment which I will keep updated.***\n\n## 1 package in this PR\n\n* `xald-parse-sdk` (*new!*) — [on npm](https://www.npmjs.com/package/xald-parse-sdk), [on unpkg](https://unpkg.com/browse/xald-parse-sdk@latest/)\n  - Config files to check:\n    - [`xald-parse-sdk/ts3.6/tslint.json`](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/55210/files/fc6b2c11d8ef528a4a2b554b0fe7071b6959f9fe#diff-bfc1b741f010db81cead2207a1b4172e9a907b81e1b2e00aaf5634ec6e5f3e7b): not [the expected form](https://github.com/DefinitelyTyped/DefinitelyTyped#user-content-linter-tslintjson) (check: `rules`)\n    - [`xald-parse-sdk/tslint.json`](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/55210/files/fc6b2c11d8ef528a4a2b554b0fe7071b6959f9fe#diff-c9e04178a7818e4f645fba6421d9c18e7f9e8be46343ae904ed4ada61296c628): not [the expected form](https://github.com/DefinitelyTyped/DefinitelyTyped#user-content-linter-tslintjson) (check: `rules`)\n\n## Code Reviews\n\nThis PR adds a new definition, so it needs to be reviewed by a DT maintainer before it can be merged.\n\nYou can test the changes of this PR [in the Playground](https://www.typescriptlang.org/play/?dtPR=55210&install-plugin=playground-dt-review).\n\n## Status\n\n * ✅ No merge conflicts\n * ❌ Continuous integration tests have failed\n * 🕐 Only a DT maintainer can approve changes when there are new packages added\n\nOnce every item on this list is checked, I'll ask you for permission to merge and publish the changes.\n\n## Inactive\n\nThis PR has been inactive for 20 days.\n\n----------------------\n... diagnostics scrubbed ...\n<!--typescript_bot_welcome-->"
+      }
+    }
+  }
+]
diff --git a/src/_tests/fixtures/55210/result.json b/src/_tests/fixtures/55210/result.json
new file mode 100644
index 0000000..fe1b332
--- /dev/null
+++ b/src/_tests/fixtures/55210/result.json
@@ -0,0 +1,26 @@
+{
+  "projectColumn": "Needs Author Action",
+  "labels": [
+    "The CI failed",
+    "New Definition",
+    "Check Config",
+    "Huge Change"
+  ],
+  "responseComments": [
+    {
+      "tag": "welcome",
+      "status": "@Dssssds Thank you for submitting this PR! I see this is your first time submitting to DefinitelyTyped 👋 — I'm the local bot who will help you through the process of getting things through.\n\n***This is a live comment which I will keep updated.***\n\n## 1 package in this PR\n\n* `xald-parse-sdk` (*new!*) — [on npm](https://www.npmjs.com/package/xald-parse-sdk), [on unpkg](https://unpkg.com/browse/xald-parse-sdk@latest/)\n  - Config files to check:\n    - [`xald-parse-sdk/ts3.6/tslint.json`](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/55210/files/fc6b2c11d8ef528a4a2b554b0fe7071b6959f9fe#diff-bfc1b741f010db81cead2207a1b4172e9a907b81e1b2e00aaf5634ec6e5f3e7b): not [the expected form](https://github.com/DefinitelyTyped/DefinitelyTyped#user-content-linter-tslintjson) (check: `rules`)\n    - [`xald-parse-sdk/tslint.json`](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/55210/files/fc6b2c11d8ef528a4a2b554b0fe7071b6959f9fe#diff-c9e04178a7818e4f645fba6421d9c18e7f9e8be46343ae904ed4ada61296c628): not [the expected form](https://github.com/DefinitelyTyped/DefinitelyTyped#user-content-linter-tslintjson) (check: `rules`)\n\n## Code Reviews\n\nThis PR adds a new definition, so it needs to be reviewed by a DT maintainer before it can be merged.\n\nYou can test the changes of this PR [in the Playground](https://www.typescriptlang.org/play/?dtPR=55210&install-plugin=playground-dt-review).\n\n## Status\n\n * ✅ No merge conflicts\n * ❌ Continuous integration tests have failed\n * 🕐 Only a DT maintainer can approve changes when there are new packages added\n\nOnce every item on this list is checked, I'll ask you for permission to merge and publish the changes.\n\n## Inactive\n\nThis PR has been inactive for 20 days.\n\n----------------------\n... diagnostics scrubbed ..."
+    },
+    {
+      "tag": "pinging-reviewers-others",
+      "status": "🔔 @Dssssds — you're the only owner, but it would still be good if you find someone to [review this PR](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/55210/files) in the next few days, otherwise a maintainer will look at it. (And if you do find someone, maybe even recruit them to be a second owner to make future changes easier...)"
+    },
+    {
+      "tag": "gh-actions-complaint-fc6b2c1",
+      "status": "@Dssssds The CI build failed! Please [review the logs for more information](https://github.com/DefinitelyTyped/DefinitelyTyped/commit/fc6b2c11d8ef528a4a2b554b0fe7071b6959f9fe/checks?check_suite_id=3585693499).\n\nOnce you've pushed the fixes, the build will automatically re-run. Thanks!\n\n**Note: builds which are failing do not end up on the list of PRs for the DT maintainers to review.**"
+    }
+  ],
+  "shouldClose": false,
+  "shouldMerge": false,
+  "shouldUpdateLabels": true
+}
diff --git a/src/_tests/fixtures/55508/derived.json b/src/_tests/fixtures/55508/derived.json
index 8f7fb88..88b339f 100644
--- a/src/_tests/fixtures/55508/derived.json
+++ b/src/_tests/fixtures/55508/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": true,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Popular",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/55512/derived.json b/src/_tests/fixtures/55512/derived.json
index 471c03f..faf9b6e 100644
--- a/src/_tests/fixtures/55512/derived.json
+++ b/src/_tests/fixtures/55512/derived.json
@@ -9,6 +9,7 @@
   "hasMergeConflict": false,
   "isFirstContribution": true,
   "tooManyFiles": false,
+  "hugeChange": false,
   "popularityLevel": "Popular",
   "pkgInfo": [
     {
diff --git a/src/_tests/fixtures/55741/_downloads.json b/src/_tests/fixtures/55741/_downloads.json
new file mode 100644
index 0000000..52321ec
--- /dev/null
+++ b/src/_tests/fixtures/55741/_downloads.json
@@ -0,0 +1,3 @@
+{
+  "ax": 0
+}
diff --git a/src/_tests/fixtures/55741/_files.json b/src/_tests/fixtures/55741/_files.json
new file mode 100644
index 0000000..bc9c19c
--- /dev/null
+++ b/src/_tests/fixtures/55741/_files.json
@@ -0,0 +1,5 @@
+{
+  "aded751196aea4180928204085f088eb530d7b88:types/ax/tsconfig.json": "{\n    \"compilerOptions\": {\n        \"module\": \"commonjs\",\n        \"lib\": [\n            \"es6\"\n        ],\n        \"noImplicitAny\": true,\n        \"noImplicitThis\": true,\n        \"strictFunctionTypes\": true,\n        \"strictNullChecks\": true,\n        \"baseUrl\": \"../\",\n        \"typeRoots\": [\n            \"../\"\n        ],\n        \"types\": [],\n        \"noEmit\": true,\n        \"forceConsistentCasingInFileNames\": true\n    },\n    \"files\": [\n        \"index.d.ts\",\n        \"ax-tests.ts\"\n    ]\n}\n",
+  "aded751196aea4180928204085f088eb530d7b88:types/ax/tslint.json": "{ \"extends\": \"dtslint/dt.json\" }\n",
+  "aded751196aea4180928204085f088eb530d7b88:types/ax/index.d.ts": "// Type definitions for ax 0.1\n// Project: https://github.com/AstroxNetwork/ax\n// Definitions by: Hsehoiki <https://github.com/AstroxNetwork>\n// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped\n\ninterface AxType {\n    /**\n     * ax function\n     */\n    setNavigationBarTitle: (text: string) => boolean;\n    setNavigationBarColor: (color: string) => boolean;\n}\n\n/**\n * ax is global object\n */\ndeclare const ax: AxType;\n\nexport = ax;\n"
+}
diff --git a/src/_tests/fixtures/55741/_response.json b/src/_tests/fixtures/55741/_response.json
new file mode 100644
index 0000000..ebc0ddd
--- /dev/null
+++ b/src/_tests/fixtures/55741/_response.json
@@ -0,0 +1,292 @@
+{
+  "data": {
+    "repository": {
+      "id": "MDEwOlJlcG9zaXRvcnk2MDkzMzE2",
+      "pullRequest": {
+        "id": "MDExOlB1bGxSZXF1ZXN0NzMyNTEwMzkx",
+        "title": "Feat/kasumisk",
+        "createdAt": "2021-09-13T08:32:21Z",
+        "author": {
+          "login": "kasumisk",
+          "__typename": "User"
+        },
+        "authorAssociation": "FIRST_TIME_CONTRIBUTOR",
+        "baseRef": {
+          "name": "master",
+          "__typename": "Ref"
+        },
+        "labels": {
+          "nodes": [
+            {
+              "name": "New Definition",
+              "__typename": "Label"
+            }
+          ],
+          "__typename": "LabelConnection"
+        },
+        "isDraft": false,
+        "mergeable": "MERGEABLE",
+        "number": 55741,
+        "state": "OPEN",
+        "headRefOid": "aded751196aea4180928204085f088eb530d7b88",
+        "changedFiles": 4,
+        "timelineItems": {
+          "nodes": [
+            {
+              "actor": {
+                "login": "typescript-bot",
+                "__typename": "User"
+              },
+              "createdAt": "2021-09-13T08:40:11Z",
+              "projectColumnName": "Waiting for Code Reviews",
+              "__typename": "MovedColumnsInProjectEvent"
+            },
+            {
+              "createdAt": "2021-09-13T08:41:20Z",
+              "__typename": "ReopenedEvent"
+            },
+            {
+              "actor": {
+                "login": "typescript-bot",
+                "__typename": "User"
+              },
+              "createdAt": "2021-09-13T08:44:47Z",
+              "projectColumnName": "Needs Maintainer Action",
+              "__typename": "MovedColumnsInProjectEvent"
+            }
+          ],
+          "__typename": "PullRequestTimelineItemsConnection"
+        },
+        "reviews": {
+          "nodes": [],
+          "__typename": "PullRequestReviewConnection"
+        },
+        "commits": {
+          "totalCount": 3,
+          "nodes": [
+            {
+              "commit": {
+                "checkSuites": {
+                  "nodes": [
+                    {
+                      "databaseId": 3751060170,
+                      "app": {
+                        "name": "GitHub Actions",
+                        "__typename": "App"
+                      },
+                      "conclusion": "SUCCESS",
+                      "resourcePath": "/DefinitelyTyped/DefinitelyTyped/commit/aded751196aea4180928204085f088eb530d7b88/checks?check_suite_id=3751060170",
+                      "status": "COMPLETED",
+                      "url": "https://github.com/DefinitelyTyped/DefinitelyTyped/commit/aded751196aea4180928204085f088eb530d7b88/checks?check_suite_id=3751060170",
+                      "checkRuns": {
+                        "nodes": [
+                          {
+                            "title": null,
+                            "__typename": "CheckRun"
+                          }
+                        ],
+                        "__typename": "CheckRunConnection"
+                      },
+                      "__typename": "CheckSuite"
+                    },
+                    {
+                      "databaseId": 3751061670,
+                      "app": {
+                        "name": "Azure Pipelines",
+                        "__typename": "App"
+                      },
+                      "conclusion": "SUCCESS",
+                      "resourcePath": "/DefinitelyTyped/DefinitelyTyped/commit/aded751196aea4180928204085f088eb530d7b88/checks?check_suite_id=3751061670",
+                      "status": "COMPLETED",
+                      "url": "https://github.com/DefinitelyTyped/DefinitelyTyped/commit/aded751196aea4180928204085f088eb530d7b88/checks?check_suite_id=3751061670",
+                      "checkRuns": {
+                        "nodes": [
+                          {
+                            "title": "Build #20210913.8 succeeded",
+                            "__typename": "CheckRun"
+                          }
+                        ],
+                        "__typename": "CheckRunConnection"
+                      },
+                      "__typename": "CheckSuite"
+                    },
+                    {
+                      "databaseId": 3751075506,
+                      "app": {
+                        "name": "GitHub Actions",
+                        "__typename": "App"
+                      },
+                      "conclusion": "SUCCESS",
+                      "resourcePath": "/DefinitelyTyped/DefinitelyTyped/commit/aded751196aea4180928204085f088eb530d7b88/checks?check_suite_id=3751075506",
+                      "status": "COMPLETED",
+                      "url": "https://github.com/DefinitelyTyped/DefinitelyTyped/commit/aded751196aea4180928204085f088eb530d7b88/checks?check_suite_id=3751075506",
+                      "checkRuns": {
+                        "nodes": [
+                          {
+                            "title": null,
+                            "__typename": "CheckRun"
+                          }
+                        ],
+                        "__typename": "CheckRunConnection"
+                      },
+                      "__typename": "CheckSuite"
+                    }
+                  ],
+                  "__typename": "CheckSuiteConnection"
+                },
+                "status": null,
+                "authoredDate": "2021-09-13T08:39:27Z",
+                "committedDate": "2021-09-13T08:39:27Z",
+                "pushedDate": "2021-09-13T08:39:37Z",
+                "oid": "aded751196aea4180928204085f088eb530d7b88",
+                "__typename": "Commit"
+              },
+              "__typename": "PullRequestCommit"
+            }
+          ],
+          "__typename": "PullRequestCommitConnection"
+        },
+        "comments": {
+          "totalCount": 5,
+          "nodes": [
+            {
+              "id": "IC_kwDOAFz6BM42twsQ",
+              "author": {
+                "login": "typescript-bot",
+                "__typename": "User"
+              },
+              "databaseId": 917965584,
+              "body": "@kasumisk Thank you for submitting this PR! I see this is your first time submitting to DefinitelyTyped 👋 — I'm the local bot who will help you through the process of getting things through.\n\n***This is a live comment which I will keep updated.***\n\n## 1 package in this PR\n\n* `ax` (*new!*) — [on npm](https://www.npmjs.com/package/ax), [on unpkg](https://unpkg.com/browse/ax@latest/)\n  - 1 added owner: @AstroxNetwork\n\n## Code Reviews\n\nThis PR adds a new definition, so it needs to be reviewed by a DT maintainer before it can be merged.\n\nYou can test the changes of this PR [in the Playground](https://www.typescriptlang.org/play/?dtPR=55741&install-plugin=playground-dt-review).\n\n## Status\n\n * ✅ No merge conflicts\n * ✅ Continuous integration tests have passed\n * 🕐 Only a DT maintainer can approve changes when there are new packages added\n\nOnce every item on this list is checked, I'll ask you for permission to merge and publish the changes.\n\n----------------------\n... diagnostics scrubbed ...\n<!--typescript_bot_welcome-->",
+              "createdAt": "2021-09-13T08:34:30Z",
+              "reactions": {
+                "nodes": [],
+                "__typename": "ReactionConnection"
+              },
+              "__typename": "IssueComment"
+            },
+            {
+              "id": "IC_kwDOAFz6BM42twsu",
+              "author": {
+                "login": "typescript-bot",
+                "__typename": "User"
+              },
+              "databaseId": 917965614,
+              "body": "🔔 @kasumisk — you're the only owner, but it would still be good if you find someone to [review this PR](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/55741/files) in the next few days, otherwise a maintainer will look at it. (And if you do find someone, maybe even recruit them to be a second owner to make future changes easier...)\n<!--typescript_bot_pinging-reviewers-others-->",
+              "createdAt": "2021-09-13T08:34:32Z",
+              "reactions": {
+                "nodes": [],
+                "__typename": "ReactionConnection"
+              },
+              "__typename": "IssueComment"
+            },
+            {
+              "id": "IC_kwDOAFz6BM42tws1",
+              "author": {
+                "login": "typescript-bot",
+                "__typename": "User"
+              },
+              "databaseId": 917965621,
+              "body": "@kasumisk The CI build failed! Please [review the logs for more information](https://github.com/DefinitelyTyped/DefinitelyTyped/commit/f37f01fdf29022d7f5bf05988adc1fb28f84db9d/checks?check_suite_id=3750996288).\n\nOnce you've pushed the fixes, the build will automatically re-run. Thanks!\n\n**Note: builds which are failing do not end up on the list of PRs for the DT maintainers to review.**\n<!--typescript_bot_gh-actions-complaint-f37f01f-->",
+              "createdAt": "2021-09-13T08:34:33Z",
+              "reactions": {
+                "nodes": [],
+                "__typename": "ReactionConnection"
+              },
+              "__typename": "IssueComment"
+            },
+            {
+              "id": "IC_kwDOAFz6BM42txtB",
+              "author": {
+                "login": "kasumisk",
+                "__typename": "User"
+              },
+              "databaseId": 917969729,
+              "body": "add ax",
+              "createdAt": "2021-09-13T08:40:13Z",
+              "reactions": {
+                "nodes": [],
+                "__typename": "ReactionConnection"
+              },
+              "__typename": "IssueComment"
+            },
+            {
+              "id": "IC_kwDOAFz6BM42wAqN",
+              "author": {
+                "login": "peterblazejewicz",
+                "__typename": "User"
+              },
+              "databaseId": 918555277,
+              "body": "what's the relation to this declaration:\r\nhttps://github.com/AstroxNetwork/ax/blob/master/index.d.ts\r\nhttps://github.com/AstroxNetwork/ax/blob/master/package.json#L6",
+              "createdAt": "2021-09-13T20:35:23Z",
+              "reactions": {
+                "nodes": [],
+                "__typename": "ReactionConnection"
+              },
+              "__typename": "IssueComment"
+            }
+          ],
+          "__typename": "IssueCommentConnection"
+        },
+        "files": {
+          "totalCount": 4,
+          "nodes": [
+            {
+              "path": "types/ax/ax-tests.ts",
+              "additions": 4,
+              "deletions": 0,
+              "__typename": "PullRequestChangedFile"
+            },
+            {
+              "path": "types/ax/index.d.ts",
+              "additions": 19,
+              "deletions": 0,
+              "__typename": "PullRequestChangedFile"
+            },
+            {
+              "path": "types/ax/tsconfig.json",
+              "additions": 23,
+              "deletions": 0,
+              "__typename": "PullRequestChangedFile"
+            },
+            {
+              "path": "types/ax/tslint.json",
+              "additions": 1,
+              "deletions": 0,
+              "__typename": "PullRequestChangedFile"
+            }
+          ],
+          "pageInfo": {
+            "hasNextPage": false,
+            "endCursor": "NA",
+            "__typename": "PageInfo"
+          },
+          "__typename": "PullRequestChangedFileConnection"
+        },
+        "projectCards": {
+          "nodes": [
+            {
+              "id": "PRC_lALOAFz6BM4AORWwzgQXZbg",
+              "project": {
+                "id": "MDc6UHJvamVjdDM3NDExMDQ=",
+                "number": 5,
+                "name": "New Pull Request Status Board",
+                "__typename": "Project"
+              },
+              "column": {
+                "id": "MDEzOlByb2plY3RDb2x1bW45ODY3MDA2",
+                "name": "Needs Maintainer Action",
+                "__typename": "ProjectColumn"
+              },
+              "__typename": "ProjectCard"
+            }
+          ],
+          "__typename": "ProjectCardConnection"
+        },
+        "__typename": "PullRequest"
+      },
+      "__typename": "Repository"
+    }
+  },
+  "loading": false,
+  "networkStatus": 7
+}
diff --git a/src/_tests/fixtures/55741/derived.json b/src/_tests/fixtures/55741/derived.json
new file mode 100644
index 0000000..0ed54a6
--- /dev/null
+++ b/src/_tests/fixtures/55741/derived.json
@@ -0,0 +1,46 @@
+{
+  "type": "info",
+  "now": "2021-09-14T10:47:18.683Z",
+  "pr_number": 55741,
+  "author": "kasumisk",
+  "headCommitOid": "aded751196aea4180928204085f088eb530d7b88",
+  "lastPushDate": "2021-09-13T08:39:37.000Z",
+  "lastActivityDate": "2021-09-13T20:35:23.000Z",
+  "hasMergeConflict": false,
+  "isFirstContribution": true,
+  "tooManyFiles": false,
+  "popularityLevel": "Well-liked by everyone",
+  "pkgInfo": [
+    {
+      "name": "ax",
+      "kind": "add",
+      "files": [
+        {
+          "path": "types/ax/ax-tests.ts",
+          "kind": "test"
+        },
+        {
+          "path": "types/ax/index.d.ts",
+          "kind": "definition"
+        },
+        {
+          "path": "types/ax/tsconfig.json",
+          "kind": "package-meta-ok"
+        },
+        {
+          "path": "types/ax/tslint.json",
+          "kind": "package-meta-ok"
+        }
+      ],
+      "owners": [],
+      "addedOwners": [
+        "AstroxNetwork"
+      ],
+      "deletedOwners": [],
+      "popularityLevel": "Well-liked by everyone"
+    }
+  ],
+  "reviews": [],
+  "mainBotCommentID": 917965584,
+  "ciResult": "pass"
+}
diff --git a/src/_tests/fixtures/55741/mutations.json b/src/_tests/fixtures/55741/mutations.json
new file mode 100644
index 0000000..82745df
--- /dev/null
+++ b/src/_tests/fixtures/55741/mutations.json
@@ -0,0 +1,20 @@
+[
+  {
+    "mutation": "mutation ($input: UpdateIssueCommentInput!) {\n  updateIssueComment(input: $input) {\n    __typename\n  }\n}\n",
+    "variables": {
+      "input": {
+        "id": "IC_kwDOAFz6BM42twsQ",
+        "body": "@kasumisk Thank you for submitting this PR! I see this is your first time submitting to DefinitelyTyped 👋 — I'm the local bot who will help you through the process of getting things through.\n\n***This is a live comment which I will keep updated.***\n\n## 1 package in this PR\n\n* `ax` (*new!*) — [on npm](https://www.npmjs.com/package/ax), [on unpkg](https://unpkg.com/browse/ax@latest/)\n  - 1 added owner: @AstroxNetwork\n\n## Code Reviews\n\nThis PR adds a new definition, so it needs to be reviewed by a DT maintainer before it can be merged.\n\nYou can test the changes of this PR [in the Playground](https://www.typescriptlang.org/play/?dtPR=55741&install-plugin=playground-dt-review).\n\n## Status\n\n * ✅ No merge conflicts\n * ✅ Continuous integration tests have passed\n * 🕐 Only a DT maintainer can approve changes when there are new packages added\n\nOnce every item on this list is checked, I'll ask you for permission to merge and publish the changes.\n\n----------------------\n... diagnostics scrubbed ...\n<!--typescript_bot_welcome-->"
+      }
+    }
+  },
+  {
+    "mutation": "mutation ($input: UpdateIssueCommentInput!) {\n  updateIssueComment(input: $input) {\n    __typename\n  }\n}\n",
+    "variables": {
+      "input": {
+        "id": "IC_kwDOAFz6BM42twsu",
+        "body": "🔔 @kasumisk — there are no owners, but it would still be good if you find someone to [review this PR](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/55741/files) in the next few days, otherwise a maintainer will look at it. (And if you do find someone, maybe even recruit them to be a second owner to make future changes easier...)\n<!--typescript_bot_pinging-reviewers-others-->"
+      }
+    }
+  }
+]
diff --git a/src/_tests/fixtures/55741/result.json b/src/_tests/fixtures/55741/result.json
new file mode 100644
index 0000000..57b530c
--- /dev/null
+++ b/src/_tests/fixtures/55741/result.json
@@ -0,0 +1,19 @@
+{
+  "projectColumn": "Needs Maintainer Action",
+  "labels": [
+    "New Definition"
+  ],
+  "responseComments": [
+    {
+      "tag": "welcome",
+      "status": "@kasumisk Thank you for submitting this PR! I see this is your first time submitting to DefinitelyTyped 👋 — I'm the local bot who will help you through the process of getting things through.\n\n***This is a live comment which I will keep updated.***\n\n## 1 package in this PR\n\n* `ax` (*new!*) — [on npm](https://www.npmjs.com/package/ax), [on unpkg](https://unpkg.com/browse/ax@latest/)\n  - 1 added owner: @AstroxNetwork\n\n## Code Reviews\n\nThis PR adds a new definition, so it needs to be reviewed by a DT maintainer before it can be merged.\n\nYou can test the changes of this PR [in the Playground](https://www.typescriptlang.org/play/?dtPR=55741&install-plugin=playground-dt-review).\n\n## Status\n\n * ✅ No merge conflicts\n * ✅ Continuous integration tests have passed\n * 🕐 Only a DT maintainer can approve changes when there are new packages added\n\nOnce every item on this list is checked, I'll ask you for permission to merge and publish the changes.\n\n----------------------\n... diagnostics scrubbed ..."
+    },
+    {
+      "tag": "pinging-reviewers-others",
+      "status": "🔔 @kasumisk — there are no owners, but it would still be good if you find someone to [review this PR](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/55741/files) in the next few days, otherwise a maintainer will look at it. (And if you do find someone, maybe even recruit them to be a second owner to make future changes easier...)"
+    }
+  ],
+  "shouldClose": false,
+  "shouldMerge": false,
+  "shouldUpdateLabels": true
+}