diff --git a/src/_tests/fixtures/59713/_downloads.json b/src/_tests/fixtures/59713/_downloads.json new file mode 100644 index 00000000..6fe7893a --- /dev/null +++ b/src/_tests/fixtures/59713/_downloads.json @@ -0,0 +1,3 @@ +{ + "eonasdan-bootstrap-datetimepicker": 42589 +} diff --git a/src/_tests/fixtures/59713/_files.json b/src/_tests/fixtures/59713/_files.json new file mode 100644 index 00000000..5ab5fabe --- /dev/null +++ b/src/_tests/fixtures/59713/_files.json @@ -0,0 +1,6 @@ +{ + "ee6b96f0d20c772b6f04d7d827d4ed3594fb1977:types/eonasdan-bootstrap-datetimepicker/tslint.json": "{\n \"extends\": \"@definitelytyped/dtslint/dt.json\",\n \"rules\": {\n \"adjacent-overload-signatures\": false,\n \"dt-header\": false,\n \"interface-over-type-literal\": false,\n \"jsdoc-format\": false,\n \"max-line-length\": false,\n \"no-var-keyword\": false,\n \"only-arrow-functions\": false,\n \"prefer-const\": false,\n \"semicolon\": false,\n \"space-before-function-paren\": false,\n \"strict-export-declare-modifiers\": false,\n \"unified-signatures\": false\n }\n}\n", + "7d761ba60b12dda9d54420ff9351b104a49c1355:types/eonasdan-bootstrap-datetimepicker/tslint.json": "{\n \"extends\": \"@definitelytyped/dtslint/dt.json\",\n \"rules\": {\n \"adjacent-overload-signatures\": false,\n \"dt-header\": false,\n \"interface-over-type-literal\": false,\n \"jsdoc-format\": false,\n \"max-line-length\": false,\n \"no-const-enum\": false,\n \"no-var-keyword\": false,\n \"only-arrow-functions\": false,\n \"prefer-const\": false,\n \"semicolon\": false,\n \"space-before-function-paren\": false,\n \"strict-export-declare-modifiers\": false,\n \"unified-signatures\": false\n }\n}\n", + "7d761ba60b12dda9d54420ff9351b104a49c1355:types/eonasdan-bootstrap-datetimepicker/index.d.ts": "// Type definitions for Bootstrap v3 Datepicker v4.17.37\n// Project: http://eonasdan.github.io/bootstrap-datetimepicker\n// Definitions by: Markus Peloso \n// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped\n// TypeScript Version: 2.3\n\n/// \n\nimport * as moment from 'moment';\n\nexport as namespace EonasdanBootstrapDatetimepicker;\n\nexport type DateComparable = string | Date | moment.Moment;\n\nexport type UseCurrent = \"year\" | \"month\" | \"day\" | \"hour\" | \"minute\";\n\nexport interface Icons {\n /**\n * Default: \"glyphicon glyphicon-chevron-right\"\n */\n time?: string | undefined;\n\n /**\n * Default: \"glyphicon glyphicon-calendar\"\n */\n date?: string | undefined;\n\n /**\n * Default: \"glyphicon glyphicon-chevron-up\"\n */\n up?: string | undefined;\n\n /**\n * Default: \"glyphicon glyphicon-time\"\n */\n down?: string | undefined;\n\n /**\n * Default: \"glyphicon glyphicon-screenshot\"\n */\n previous?: string | undefined;\n\n /**\n * Default: \"glyphicon glyphicon-chevron-left\"\n */\n next?: string | undefined;\n\n /**\n * Default: \"glyphicon glyphicon-chevron-down\"\n */\n today?: string | undefined;\n\n /**\n * Default: \"glyphicon glyphicon-trash\"\n */\n clear?: string | undefined;\n\n /**\n * Default: \"glyphicon glyphicon-remove\"\n */\n close?: string | undefined;\n}\n\nexport declare const enum DayOfWeek {\n Sunday = 0,\n Monday = 1,\n Tuesday = 2,\n Wednesday = 3,\n Thursday = 4,\n Friday = 5,\n Saturday = 6\n}\n\nexport type ViewMode = \"days\" | \"months\" | \"years\" | \"decades\";\n\nexport type ToolbarPlacement = \"default\" | \"top\" | \"bottom\";\n\nexport interface WidgetPositioning {\n horizontal?: \"auto\" | \"left\" | \"right\" | undefined;\n vertical?: \"auto\" | \"top\" | \"bottom\" | undefined;\n}\n\nexport interface KeyBinds {\n up?: ((widget: JQuery | boolean) => any) | undefined;\n down?: ((widget: JQuery | boolean) => any) | undefined;\n \"control up\"?: ((widget: JQuery | boolean) => any) | undefined;\n \"control down\"?: ((widget: JQuery | boolean) => any) | undefined;\n left?: ((widget: JQuery | boolean) => any) | undefined;\n right?: ((widget: JQuery | boolean) => any) | undefined;\n pageUp?: ((widget: JQuery | boolean) => any) | undefined;\n pageDown?: ((widget: JQuery | boolean) => any) | undefined;\n enter?: (() => any) | undefined;\n escape?: (() => any) | undefined;\n \"control space\"?: ((widget: JQuery) => any) | undefined;\n t?: (() => any) | undefined;\n delete?: (() => any) | undefined;\n}\n\nexport type FromTo = [moment.Moment, moment.Moment];\n\nexport interface Tooltips {\n /**\n * Default: \"Go to today\"\n */\n today?: string | undefined;\n\n /**\n * Default: \"Clear selection\"\n */\n clear?: string | undefined;\n\n /**\n * Default: \"Close the picker\"\n */\n close?: string | undefined;\n\n /**\n * Default: \"Select Month\"\n */\n selectMonth?: string | undefined;\n\n /**\n * Default: \"Previous Month\"\n */\n prevMonth?: string | undefined;\n\n /**\n * Default: \"Next Month\"\n */\n nextMonth?: string | undefined;\n\n /**\n * Default: \"Select Year\"\n */\n selectYear?: string | undefined;\n\n /**\n * Default: \"Previous Year\"\n */\n prevYear?: string | undefined;\n\n /**\n * Default: \"Next Year\"\n */\n nextYear?: string | undefined;\n\n /**\n * Default: \"Select Decade\"\n */\n selectDecade?: string | undefined;\n\n /**\n * Default: \"Previous Decade\"\n */\n prevDecade?: string | undefined;\n\n /**\n * Default: \"Next Decade\"\n */\n nextDecade?: string | undefined;\n\n /**\n * Default: \"Previous Century\"\n */\n prevCentury?: string | undefined;\n\n /**\n * Default: \"Next Century\"\n */\n nextCentury?: string | undefined;\n\n /**\n * Default: \"Pick Hour\"\n */\n pickHour?: string | undefined;\n\n /**\n * Default: \"Increment Hour\"\n */\n incrementHour?: string | undefined;\n\n /**\n * Default: \"Decrement Hour\"\n */\n decrementHour?: string | undefined;\n\n /**\n * Default: \"Pick Minute\"\n */\n pickMinute?: string | undefined;\n\n /**\n * Default: \"Increment Minute\"\n */\n incrementMinute?: string | undefined;\n\n /**\n * Default: \"Decrement Minute\"\n */\n decrementMinute?: string | undefined;\n\n /**\n * Default: \"Pick Second\"\n */\n pickSecond?: string | undefined;\n\n /**\n * Default: \"Increment Second\"\n */\n incrementSecond?: string | undefined;\n\n /**\n * Default: \"Decrement Second\"\n */\n decrementSecond?: string | undefined;\n\n /**\n * Default: \"Toggle Period\"\n */\n togglePeriod?: string | undefined;\n\n /**\n * Default: \"Select Time\"\n */\n selectTime?: string | undefined;\n}\n\nexport type ParseInputDateFunction = (inputDate: string) => moment.Moment;\n\nexport interface OptionsBase {\n /**\n * Default: \"Etc/UTC\"\n */\n timeZone?: string | undefined;\n\n /**\n * See momentjs' docs for valid formats. Format also dictates what components are shown, e.g. MM/dd/YYYY will not display the time picker.\n * Default: false\n */\n format?: string | boolean | undefined;\n\n /**\n * Changes the heading of the datepicker when in \"days\" view.\n * Default: \"MMMM YYYY\"\n */\n dayViewHeaderFormat?: string | undefined;\n\n /**\n * Allows for several input formats to be valid.\n * Default: false\n */\n extraFormats?: string[] | boolean | undefined;\n\n /**\n * Number of minutes the up/down arrow's will move the minutes value in the time picker.\n * Default: 1\n */\n stepping?: number | undefined;\n\n /**\n * Prevents date/time selections before this date.\n * minDate will override defaultDate and useCurrent if either of these settings are the same day since both options are invalid according to the rules you've selected.\n * Default: false\n */\n minDate?: DateComparable | boolean | undefined;\n\n /**\n * Prevents date/time selections after this date.\n * maxDate will override defaultDate and useCurrent if either of these settings are the same day since both options are invalid according to the rules you've selected.\n * Default: false\n */\n maxDate?: DateComparable | boolean | undefined;\n\n /**\n * On show, will set the picker to the current date/time\n * Default: true\n */\n useCurrent?: boolean | UseCurrent | undefined;\n\n /**\n * Using a Bootstraps collapse to switch between date/time pickers.\n * Default: true\n */\n collapse?: boolean | undefined;\n\n /**\n * See momentjs for valid locales.\n * You must include moment-with-locales.js or a local js file.\n * Default: moment.locale()\n */\n locale?: string | undefined;\n\n /**\n * Sets the picker default date/time. Overrides useCurrent\n * Default: false\n */\n defaultDate?: DateComparable | boolean | undefined;\n\n /**\n * Change the default icons for the pickers functions\n * Default: {\n * time: \"glyphicon glyphicon-time\",\n * date: \"glyphicon glyphicon-calendar\",\n * up: \"glyphicon glyphicon-chevron-up\",\n * down: \"glyphicon glyphicon-chevron-down\",\n * previous: \"glyphicon glyphicon-chevron-left\",\n * next: \"glyphicon glyphicon-chevron-right\",\n * today: \"glyphicon glyphicon-screenshot\",\n * clear: \"glyphicon glyphicon-trash\",\n * close: \"glyphicon glyphicon-remove\"\n * }\n */\n icons?: Icons | undefined;\n\n /**\n * Defines if moment should use strict date parsing when considering a date to be valid\n * Default: false\n */\n useStrict?: boolean | undefined;\n\n /**\n * Shows the picker side by side when using the time and date together.\n * Default: false\n */\n sideBySide?: boolean | undefined;\n\n /**\n * Accepts: array of numbers from 0-6\n * Disables the section of days of the week, e.g. weekends.\n * Default: false\n */\n daysOfWeekDisabled?: DayOfWeek[] | boolean | undefined;\n\n /**\n * Shows the week of the year to the left of first day of the week.\n * Default: false\n */\n calendarWeeks?: boolean | undefined;\n\n /**\n * The default view to display when the picker is shown.\n * Note: To limit the picker to selecting, for instance the year and month, use format: MM/YYYY\n * Default: \"days\"\n */\n viewMode?: ViewMode | undefined;\n\n /**\n * Changes the placement of the icon toolbar.\n * Default: \"default\"\n */\n toolbarPlacement?: ToolbarPlacement | undefined;\n\n /**\n * Show the \"Today\" button in the icon toolbar.\n * Clicking the \"Today\" button will set the calendar view and set the date to now.\n * Default: false\n */\n showTodayButton?: boolean | undefined;\n\n /**\n * Show the \"Clear\" button in the icon toolbar.\n * Clicking the \"Clear\" button will set the calendar to null.\n * Default: false\n */\n showClear?: boolean | undefined;\n\n /**\n * Show the \"Close\" button in the icon toolbar.\n * Clicking the \"Close\" button will call hide()\n * Default: false\n */\n showClose?: boolean | undefined;\n\n /**\n * Accepts: object with the all or one of the parameters above\n * horizontal: 'auto', 'left', 'right'\n * vertical: 'auto', 'top', 'bottom'\n * Default: {\n * horizontal: 'auto'\n * vertical: 'auto'\n * }\n */\n widgetPositioning?: WidgetPositioning | undefined;\n\n /**\n * On picker show, places the widget at the identifier (string) or jQuery object if the element has css position: \"relative\"\n * Default: null\n */\n widgetParent?: string | JQuery | undefined;\n\n /**\n * Will cause the date picker to stay open after selecting a date if no time components are being used.\n * Default: false\n */\n keepOpen?: boolean | undefined;\n\n /**\n * Will display the picker inline without the need of a input field. This will also hide borders and shadows.\n * Default: false\n */\n inline?: boole", + "ee6b96f0d20c772b6f04d7d827d4ed3594fb1977:types/eonasdan-bootstrap-datetimepicker/index.d.ts": "// Type definitions for Bootstrap v3 Datepicker v4.17.37\n// Project: http://eonasdan.github.io/bootstrap-datetimepicker\n// Definitions by: Markus Peloso \n// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped\n// TypeScript Version: 2.3\n\n/// \n\nimport * as moment from 'moment';\n\nexport as namespace EonasdanBootstrapDatetimepicker;\n\nexport type DateComparable = string | Date | moment.Moment;\n\nexport type UseCurrent = \"year\" | \"month\" | \"day\" | \"hour\" | \"minute\";\n\nexport interface Icons {\n /**\n * Default: \"glyphicon glyphicon-chevron-right\"\n */\n time?: string | undefined;\n\n /**\n * Default: \"glyphicon glyphicon-calendar\"\n */\n date?: string | undefined;\n\n /**\n * Default: \"glyphicon glyphicon-chevron-up\"\n */\n up?: string | undefined;\n\n /**\n * Default: \"glyphicon glyphicon-time\"\n */\n down?: string | undefined;\n\n /**\n * Default: \"glyphicon glyphicon-screenshot\"\n */\n previous?: string | undefined;\n\n /**\n * Default: \"glyphicon glyphicon-chevron-left\"\n */\n next?: string | undefined;\n\n /**\n * Default: \"glyphicon glyphicon-chevron-down\"\n */\n today?: string | undefined;\n\n /**\n * Default: \"glyphicon glyphicon-trash\"\n */\n clear?: string | undefined;\n\n /**\n * Default: \"glyphicon glyphicon-remove\"\n */\n close?: string | undefined;\n}\n\nexport type DayOfWeek =\n | 0 /* Sunday */\n | 1 /* Monday */\n | 2 /* Tuesday */\n | 3 /* Wednesday */\n | 4 /* Thursday */\n | 5 /* Friday */\n | 6 /* Saturday */;\n\nexport type ViewMode = \"days\" | \"months\" | \"years\" | \"decades\";\n\nexport type ToolbarPlacement = \"default\" | \"top\" | \"bottom\";\n\nexport interface WidgetPositioning {\n horizontal?: \"auto\" | \"left\" | \"right\" | undefined;\n vertical?: \"auto\" | \"top\" | \"bottom\" | undefined;\n}\n\nexport interface KeyBinds {\n up?: ((widget: JQuery | boolean) => any) | undefined;\n down?: ((widget: JQuery | boolean) => any) | undefined;\n \"control up\"?: ((widget: JQuery | boolean) => any) | undefined;\n \"control down\"?: ((widget: JQuery | boolean) => any) | undefined;\n left?: ((widget: JQuery | boolean) => any) | undefined;\n right?: ((widget: JQuery | boolean) => any) | undefined;\n pageUp?: ((widget: JQuery | boolean) => any) | undefined;\n pageDown?: ((widget: JQuery | boolean) => any) | undefined;\n enter?: (() => any) | undefined;\n escape?: (() => any) | undefined;\n \"control space\"?: ((widget: JQuery) => any) | undefined;\n t?: (() => any) | undefined;\n delete?: (() => any) | undefined;\n}\n\nexport type FromTo = [moment.Moment, moment.Moment];\n\nexport interface Tooltips {\n /**\n * Default: \"Go to today\"\n */\n today?: string | undefined;\n\n /**\n * Default: \"Clear selection\"\n */\n clear?: string | undefined;\n\n /**\n * Default: \"Close the picker\"\n */\n close?: string | undefined;\n\n /**\n * Default: \"Select Month\"\n */\n selectMonth?: string | undefined;\n\n /**\n * Default: \"Previous Month\"\n */\n prevMonth?: string | undefined;\n\n /**\n * Default: \"Next Month\"\n */\n nextMonth?: string | undefined;\n\n /**\n * Default: \"Select Year\"\n */\n selectYear?: string | undefined;\n\n /**\n * Default: \"Previous Year\"\n */\n prevYear?: string | undefined;\n\n /**\n * Default: \"Next Year\"\n */\n nextYear?: string | undefined;\n\n /**\n * Default: \"Select Decade\"\n */\n selectDecade?: string | undefined;\n\n /**\n * Default: \"Previous Decade\"\n */\n prevDecade?: string | undefined;\n\n /**\n * Default: \"Next Decade\"\n */\n nextDecade?: string | undefined;\n\n /**\n * Default: \"Previous Century\"\n */\n prevCentury?: string | undefined;\n\n /**\n * Default: \"Next Century\"\n */\n nextCentury?: string | undefined;\n\n /**\n * Default: \"Pick Hour\"\n */\n pickHour?: string | undefined;\n\n /**\n * Default: \"Increment Hour\"\n */\n incrementHour?: string | undefined;\n\n /**\n * Default: \"Decrement Hour\"\n */\n decrementHour?: string | undefined;\n\n /**\n * Default: \"Pick Minute\"\n */\n pickMinute?: string | undefined;\n\n /**\n * Default: \"Increment Minute\"\n */\n incrementMinute?: string | undefined;\n\n /**\n * Default: \"Decrement Minute\"\n */\n decrementMinute?: string | undefined;\n\n /**\n * Default: \"Pick Second\"\n */\n pickSecond?: string | undefined;\n\n /**\n * Default: \"Increment Second\"\n */\n incrementSecond?: string | undefined;\n\n /**\n * Default: \"Decrement Second\"\n */\n decrementSecond?: string | undefined;\n\n /**\n * Default: \"Toggle Period\"\n */\n togglePeriod?: string | undefined;\n\n /**\n * Default: \"Select Time\"\n */\n selectTime?: string | undefined;\n}\n\nexport type ParseInputDateFunction = (inputDate: string) => moment.Moment;\n\nexport interface OptionsBase {\n /**\n * Default: \"Etc/UTC\"\n */\n timeZone?: string | undefined;\n\n /**\n * See momentjs' docs for valid formats. Format also dictates what components are shown, e.g. MM/dd/YYYY will not display the time picker.\n * Default: false\n */\n format?: string | boolean | undefined;\n\n /**\n * Changes the heading of the datepicker when in \"days\" view.\n * Default: \"MMMM YYYY\"\n */\n dayViewHeaderFormat?: string | undefined;\n\n /**\n * Allows for several input formats to be valid.\n * Default: false\n */\n extraFormats?: string[] | boolean | undefined;\n\n /**\n * Number of minutes the up/down arrow's will move the minutes value in the time picker.\n * Default: 1\n */\n stepping?: number | undefined;\n\n /**\n * Prevents date/time selections before this date.\n * minDate will override defaultDate and useCurrent if either of these settings are the same day since both options are invalid according to the rules you've selected.\n * Default: false\n */\n minDate?: DateComparable | boolean | undefined;\n\n /**\n * Prevents date/time selections after this date.\n * maxDate will override defaultDate and useCurrent if either of these settings are the same day since both options are invalid according to the rules you've selected.\n * Default: false\n */\n maxDate?: DateComparable | boolean | undefined;\n\n /**\n * On show, will set the picker to the current date/time\n * Default: true\n */\n useCurrent?: boolean | UseCurrent | undefined;\n\n /**\n * Using a Bootstraps collapse to switch between date/time pickers.\n * Default: true\n */\n collapse?: boolean | undefined;\n\n /**\n * See momentjs for valid locales.\n * You must include moment-with-locales.js or a local js file.\n * Default: moment.locale()\n */\n locale?: string | undefined;\n\n /**\n * Sets the picker default date/time. Overrides useCurrent\n * Default: false\n */\n defaultDate?: DateComparable | boolean | undefined;\n\n /**\n * Change the default icons for the pickers functions\n * Default: {\n * time: \"glyphicon glyphicon-time\",\n * date: \"glyphicon glyphicon-calendar\",\n * up: \"glyphicon glyphicon-chevron-up\",\n * down: \"glyphicon glyphicon-chevron-down\",\n * previous: \"glyphicon glyphicon-chevron-left\",\n * next: \"glyphicon glyphicon-chevron-right\",\n * today: \"glyphicon glyphicon-screenshot\",\n * clear: \"glyphicon glyphicon-trash\",\n * close: \"glyphicon glyphicon-remove\"\n * }\n */\n icons?: Icons | undefined;\n\n /**\n * Defines if moment should use strict date parsing when considering a date to be valid\n * Default: false\n */\n useStrict?: boolean | undefined;\n\n /**\n * Shows the picker side by side when using the time and date together.\n * Default: false\n */\n sideBySide?: boolean | undefined;\n\n /**\n * Accepts: array of numbers from 0-6\n * Disables the section of days of the week, e.g. weekends.\n * Default: false\n */\n daysOfWeekDisabled?: DayOfWeek[] | boolean | undefined;\n\n /**\n * Shows the week of the year to the left of first day of the week.\n * Default: false\n */\n calendarWeeks?: boolean | undefined;\n\n /**\n * The default view to display when the picker is shown.\n * Note: To limit the picker to selecting, for instance the year and month, use format: MM/YYYY\n * Default: \"days\"\n */\n viewMode?: ViewMode | undefined;\n\n /**\n * Changes the placement of the icon toolbar.\n * Default: \"default\"\n */\n toolbarPlacement?: ToolbarPlacement | undefined;\n\n /**\n * Show the \"Today\" button in the icon toolbar.\n * Clicking the \"Today\" button will set the calendar view and set the date to now.\n * Default: false\n */\n showTodayButton?: boolean | undefined;\n\n /**\n * Show the \"Clear\" button in the icon toolbar.\n * Clicking the \"Clear\" button will set the calendar to null.\n * Default: false\n */\n showClear?: boolean | undefined;\n\n /**\n * Show the \"Close\" button in the icon toolbar.\n * Clicking the \"Close\" button will call hide()\n * Default: false\n */\n showClose?: boolean | undefined;\n\n /**\n * Accepts: object with the all or one of the parameters above\n * horizontal: 'auto', 'left', 'right'\n * vertical: 'auto', 'top', 'bottom'\n * Default: {\n * horizontal: 'auto'\n * vertical: 'auto'\n * }\n */\n widgetPositioning?: WidgetPositioning | undefined;\n\n /**\n * On picker show, places the widget at the identifier (string) or jQuery object if the element has css position: \"relative\"\n * Default: null\n */\n widgetParent?: string | JQuery | undefined;\n\n /**\n * Will cause the date picker to stay open after selecting a date if no time components are being used.\n * Default: false\n */\n keepOpen?: boolean | undefined;\n\n /**\n * Will display the picker inline without the need of a input field. This will also hide borders and shadows.\n * Default: false\n " +} diff --git a/src/_tests/fixtures/59713/_response.json b/src/_tests/fixtures/59713/_response.json new file mode 100644 index 00000000..c65b12a2 --- /dev/null +++ b/src/_tests/fixtures/59713/_response.json @@ -0,0 +1,457 @@ +{ + "data": { + "repository": { + "id": "MDEwOlJlcG9zaXRvcnk2MDkzMzE2", + "pullRequest": { + "id": "PR_kwDOAFz6BM41rj-f", + "title": "[eonasdan-bootstrap-datetimepicker] Deconstify enums", + "createdAt": "2022-04-05T19:03:13Z", + "author": { + "login": "jablko", + "__typename": "User" + }, + "authorAssociation": "CONTRIBUTOR", + "baseRef": { + "name": "master", + "__typename": "Ref" + }, + "labels": { + "nodes": [ + { + "name": "Unmerged", + "__typename": "Label" + }, + { + "name": "Self Merge", + "__typename": "Label" + }, + { + "name": "Owner Approved", + "__typename": "Label" + } + ], + "__typename": "LabelConnection" + }, + "isDraft": false, + "mergeable": "MERGEABLE", + "number": 59713, + "state": "OPEN", + "headRefOid": "ee6b96f0d20c772b6f04d7d827d4ed3594fb1977", + "changedFiles": 3, + "additions": 9, + "deletions": 12, + "commitIds": { + "nodes": [ + { + "commit": { + "oid": "b2559df8a6f7bf6cbdd7282de6366e8734f6cdbf", + "parents": { + "nodes": [ + { + "oid": "7d761ba60b12dda9d54420ff9351b104a49c1355", + "__typename": "Commit" + } + ], + "__typename": "CommitConnection" + }, + "__typename": "Commit" + }, + "__typename": "PullRequestCommit" + }, + { + "commit": { + "oid": "ee6b96f0d20c772b6f04d7d827d4ed3594fb1977", + "parents": { + "nodes": [ + { + "oid": "b2559df8a6f7bf6cbdd7282de6366e8734f6cdbf", + "__typename": "Commit" + } + ], + "__typename": "CommitConnection" + }, + "__typename": "Commit" + }, + "__typename": "PullRequestCommit" + } + ], + "__typename": "PullRequestCommitConnection" + }, + "timelineItems": { + "nodes": [ + { + "createdAt": "2022-04-05T19:35:59Z", + "__typename": "ReadyForReviewEvent" + }, + { + "actor": { + "login": "typescript-bot", + "__typename": "User" + }, + "createdAt": "2022-04-05T19:36:32Z", + "projectColumnName": "Waiting for Code Reviews", + "__typename": "MovedColumnsInProjectEvent" + }, + { + "actor": { + "login": "typescript-bot", + "__typename": "User" + }, + "createdAt": "2022-04-07T17:55:09Z", + "projectColumnName": "Waiting for Author to Merge", + "__typename": "MovedColumnsInProjectEvent" + } + ], + "__typename": "PullRequestTimelineItemsConnection" + }, + "reviews": { + "nodes": [ + { + "author": { + "login": "ToastHawaii", + "__typename": "User" + }, + "commit": { + "oid": "ee6b96f0d20c772b6f04d7d827d4ed3594fb1977", + "__typename": "Commit" + }, + "comments": { + "nodes": [ + { + "author": { + "login": "ToastHawaii", + "__typename": "User" + }, + "createdAt": "2022-04-06T19:03:34Z", + "__typename": "PullRequestReviewComment" + } + ], + "__typename": "PullRequestReviewCommentConnection" + }, + "authorAssociation": "CONTRIBUTOR", + "state": "COMMENTED", + "submittedAt": "2022-04-06T19:03:35Z", + "url": "https://github.com/DefinitelyTyped/DefinitelyTyped/pull/59713#pullrequestreview-933983168", + "__typename": "PullRequestReview" + }, + { + "author": { + "login": "jablko", + "__typename": "User" + }, + "commit": { + "oid": "ee6b96f0d20c772b6f04d7d827d4ed3594fb1977", + "__typename": "Commit" + }, + "comments": { + "nodes": [ + { + "author": { + "login": "jablko", + "__typename": "User" + }, + "createdAt": "2022-04-07T14:32:54Z", + "__typename": "PullRequestReviewComment" + } + ], + "__typename": "PullRequestReviewCommentConnection" + }, + "authorAssociation": "CONTRIBUTOR", + "state": "COMMENTED", + "submittedAt": "2022-04-07T14:32:55Z", + "url": "https://github.com/DefinitelyTyped/DefinitelyTyped/pull/59713#pullrequestreview-935173960", + "__typename": "PullRequestReview" + }, + { + "author": { + "login": "ToastHawaii", + "__typename": "User" + }, + "commit": { + "oid": "ee6b96f0d20c772b6f04d7d827d4ed3594fb1977", + "__typename": "Commit" + }, + "comments": { + "nodes": [ + { + "author": { + "login": "ToastHawaii", + "__typename": "User" + }, + "createdAt": "2022-04-07T17:48:38Z", + "__typename": "PullRequestReviewComment" + } + ], + "__typename": "PullRequestReviewCommentConnection" + }, + "authorAssociation": "CONTRIBUTOR", + "state": "COMMENTED", + "submittedAt": "2022-04-07T17:48:38Z", + "url": "https://github.com/DefinitelyTyped/DefinitelyTyped/pull/59713#pullrequestreview-935462062", + "__typename": "PullRequestReview" + }, + { + "author": { + "login": "ToastHawaii", + "__typename": "User" + }, + "commit": { + "oid": "ee6b96f0d20c772b6f04d7d827d4ed3594fb1977", + "__typename": "Commit" + }, + "comments": { + "nodes": [ + { + "author": { + "login": "ToastHawaii", + "__typename": "User" + }, + "createdAt": "2022-04-07T17:53:21Z", + "__typename": "PullRequestReviewComment" + } + ], + "__typename": "PullRequestReviewCommentConnection" + }, + "authorAssociation": "CONTRIBUTOR", + "state": "COMMENTED", + "submittedAt": "2022-04-07T17:53:21Z", + "url": "https://github.com/DefinitelyTyped/DefinitelyTyped/pull/59713#pullrequestreview-935467400", + "__typename": "PullRequestReview" + }, + { + "author": { + "login": "ToastHawaii", + "__typename": "User" + }, + "commit": { + "oid": "ee6b96f0d20c772b6f04d7d827d4ed3594fb1977", + "__typename": "Commit" + }, + "comments": { + "nodes": [], + "__typename": "PullRequestReviewCommentConnection" + }, + "authorAssociation": "CONTRIBUTOR", + "state": "APPROVED", + "submittedAt": "2022-04-07T17:54:31Z", + "url": "https://github.com/DefinitelyTyped/DefinitelyTyped/pull/59713#pullrequestreview-935468699", + "__typename": "PullRequestReview" + }, + { + "author": { + "login": "ToastHawaii", + "__typename": "User" + }, + "commit": { + "oid": "ee6b96f0d20c772b6f04d7d827d4ed3594fb1977", + "__typename": "Commit" + }, + "comments": { + "nodes": [ + { + "author": { + "login": "ToastHawaii", + "__typename": "User" + }, + "createdAt": "2022-04-07T17:56:28Z", + "__typename": "PullRequestReviewComment" + } + ], + "__typename": "PullRequestReviewCommentConnection" + }, + "authorAssociation": "CONTRIBUTOR", + "state": "COMMENTED", + "submittedAt": "2022-04-07T17:56:28Z", + "url": "https://github.com/DefinitelyTyped/DefinitelyTyped/pull/59713#pullrequestreview-935470946", + "__typename": "PullRequestReview" + } + ], + "__typename": "PullRequestReviewConnection" + }, + "commits": { + "totalCount": 2, + "nodes": [ + { + "commit": { + "checkSuites": { + "nodes": [ + { + "databaseId": 5944248407, + "app": { + "name": "GitHub Actions", + "__typename": "App" + }, + "conclusion": "SUCCESS", + "resourcePath": "/DefinitelyTyped/DefinitelyTyped/commit/ee6b96f0d20c772b6f04d7d827d4ed3594fb1977/checks?check_suite_id=5944248407", + "status": "COMPLETED", + "url": "https://github.com/DefinitelyTyped/DefinitelyTyped/commit/ee6b96f0d20c772b6f04d7d827d4ed3594fb1977/checks?check_suite_id=5944248407", + "checkRuns": { + "nodes": [ + { + "title": null, + "__typename": "CheckRun" + } + ], + "__typename": "CheckRunConnection" + }, + "__typename": "CheckSuite" + }, + { + "databaseId": 5944249940, + "app": { + "name": "Azure Pipelines", + "__typename": "App" + }, + "conclusion": "SUCCESS", + "resourcePath": "/DefinitelyTyped/DefinitelyTyped/commit/ee6b96f0d20c772b6f04d7d827d4ed3594fb1977/checks?check_suite_id=5944249940", + "status": "COMPLETED", + "url": "https://github.com/DefinitelyTyped/DefinitelyTyped/commit/ee6b96f0d20c772b6f04d7d827d4ed3594fb1977/checks?check_suite_id=5944249940", + "checkRuns": { + "nodes": [ + { + "title": "Build #20220405.30 succeeded", + "__typename": "CheckRun" + } + ], + "__typename": "CheckRunConnection" + }, + "__typename": "CheckSuite" + } + ], + "__typename": "CheckSuiteConnection" + }, + "status": null, + "authoredDate": "2022-04-05T19:22:47Z", + "committedDate": "2022-04-05T19:22:47Z", + "pushedDate": "2022-04-05T19:23:43Z", + "oid": "ee6b96f0d20c772b6f04d7d827d4ed3594fb1977", + "__typename": "Commit" + }, + "__typename": "PullRequestCommit" + } + ], + "__typename": "PullRequestCommitConnection" + }, + "comments": { + "totalCount": 4, + "nodes": [ + { + "id": "IC_kwDOAFz6BM5A7HyT", + "author": { + "login": "typescript-bot", + "__typename": "User" + }, + "databaseId": 1089240211, + "body": "@jablko Thank you for submitting this PR!\n\n***This is a live comment which I will keep updated.***\n\n## 1 package in this PR\n\n* `eonasdan-bootstrap-datetimepicker` — [on npm](https://www.npmjs.com/package/eonasdan-bootstrap-datetimepicker), [on unpkg](https://unpkg.com/browse/eonasdan-bootstrap-datetimepicker@latest/)\n - owner-approval: @ToastHawaii\n\n## Code Reviews\n\nBecause you edited one package and updated the tests (👏), I can help you merge this PR once someone else signs off on it.\n\nYou can test the changes of this PR [in the Playground](https://www.typescriptlang.org/play/?dtPR=59713&install-plugin=playground-dt-review).\n\n## Status\n\n * ✅ No merge conflicts\n * ✅ Continuous integration tests have passed\n * ✅ Most recent commit is approved by type definition owners, DT maintainers or others\n\nAll of the items on the list are green. **To merge, you need to post a comment including the string \"Ready to merge\"** to bring in your changes.\n\n## Inactive\n\nThis PR has been inactive for 17 days — please merge or say something if there's a problem, otherwise it will be closed!\n\n----------------------\n... diagnostics scrubbed ...\n", + "createdAt": "2022-04-05T19:36:32Z", + "reactions": { + "nodes": [], + "__typename": "ReactionConnection" + }, + "__typename": "IssueComment" + }, + { + "id": "IC_kwDOAFz6BM5A7Hyq", + "author": { + "login": "typescript-bot", + "__typename": "User" + }, + "databaseId": 1089240234, + "body": "🔔 @ToastHawaii — please [review this PR](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/59713/files) in the next few days. Be sure to explicitly select **`Approve`** or **`Request Changes`** in the GitHub UI so I know what's going on.\n", + "createdAt": "2022-04-05T19:36:33Z", + "reactions": { + "nodes": [], + "__typename": "ReactionConnection" + }, + "__typename": "IssueComment" + }, + { + "id": "IC_kwDOAFz6BM5BFxQs", + "author": { + "login": "typescript-bot", + "__typename": "User" + }, + "databaseId": 1092031532, + "body": "@jablko: Everything looks good here. I am ready to merge this PR (at ee6b96f) on your behalf whenever you think it's ready.\n\nIf you'd like that to happen, please post a comment saying:\n\n> Ready to merge\n\nand I'll merge this PR almost instantly. Thanks for helping out! :heart:\n\n(@ToastHawaii: you can do this too.)\n", + "createdAt": "2022-04-07T17:55:09Z", + "reactions": { + "nodes": [], + "__typename": "ReactionConnection" + }, + "__typename": "IssueComment" + }, + { + "id": "IC_kwDOAFz6BM5BnuVN", + "author": { + "login": "typescript-bot", + "__typename": "User" + }, + "databaseId": 1100932429, + "body": "Re-ping @jablko / :\n\nThis PR has been ready to merge for over a week, and I haven't seen any requests to merge it. I will close it on May 7th (in three weeks) if this doesn't happen.\n\n(If there's no reason to avoid merging it, please do so. Otherwise, if it shouldn't be merged or if it needs more time, please close it or turn it into a draft.)\n", + "createdAt": "2022-04-17T18:57:23Z", + "reactions": { + "nodes": [], + "__typename": "ReactionConnection" + }, + "__typename": "IssueComment" + } + ], + "__typename": "IssueCommentConnection" + }, + "files": { + "totalCount": 3, + "nodes": [ + { + "path": "types/eonasdan-bootstrap-datetimepicker/eonasdan-bootstrap-datetimepicker-tests.ts", + "additions": 1, + "deletions": 2, + "__typename": "PullRequestChangedFile" + }, + { + "path": "types/eonasdan-bootstrap-datetimepicker/index.d.ts", + "additions": 8, + "deletions": 9, + "__typename": "PullRequestChangedFile" + }, + { + "path": "types/eonasdan-bootstrap-datetimepicker/tslint.json", + "additions": 0, + "deletions": 1, + "__typename": "PullRequestChangedFile" + } + ], + "pageInfo": { + "hasNextPage": false, + "endCursor": "Mw", + "__typename": "PageInfo" + }, + "__typename": "PullRequestChangedFileConnection" + }, + "projectCards": { + "nodes": [ + { + "id": "PRC_lALOAFz6BM4AORWwzgTH7Us", + "project": { + "id": "MDc6UHJvamVjdDM3NDExMDQ=", + "number": 5, + "name": "New Pull Request Status Board", + "__typename": "Project" + }, + "column": { + "id": "MDEzOlByb2plY3RDb2x1bW43NTUyOTIz", + "name": "Waiting for Author to Merge", + "__typename": "ProjectColumn" + }, + "__typename": "ProjectCard" + } + ], + "__typename": "ProjectCardConnection" + }, + "__typename": "PullRequest" + }, + "__typename": "Repository" + } + }, + "loading": false, + "networkStatus": 7 +} diff --git a/src/_tests/fixtures/59713/derived.json b/src/_tests/fixtures/59713/derived.json new file mode 100644 index 00000000..8cfdc9ab --- /dev/null +++ b/src/_tests/fixtures/59713/derived.json @@ -0,0 +1,52 @@ +{ + "type": "info", + "now": "2022-04-25T17:33:26.473Z", + "pr_number": 59713, + "author": "jablko", + "headCommitOid": "ee6b96f0d20c772b6f04d7d827d4ed3594fb1977", + "mergeBaseOid": "7d761ba60b12dda9d54420ff9351b104a49c1355", + "lastPushDate": "2022-04-05T19:23:43.000Z", + "lastActivityDate": "2022-04-07T17:56:28.000Z", + "mergeOfferDate": "2022-04-07T17:55:09.000Z", + "hasMergeConflict": false, + "isFirstContribution": false, + "tooManyFiles": false, + "hugeChange": false, + "popularityLevel": "Well-liked by everyone", + "pkgInfo": [ + { + "name": "eonasdan-bootstrap-datetimepicker", + "kind": "edit", + "files": [ + { + "path": "types/eonasdan-bootstrap-datetimepicker/eonasdan-bootstrap-datetimepicker-tests.ts", + "kind": "test" + }, + { + "path": "types/eonasdan-bootstrap-datetimepicker/index.d.ts", + "kind": "definition" + }, + { + "path": "types/eonasdan-bootstrap-datetimepicker/tslint.json", + "kind": "package-meta-ok" + } + ], + "owners": [ + "ToastHawaii" + ], + "addedOwners": [], + "deletedOwners": [], + "popularityLevel": "Well-liked by everyone" + } + ], + "reviews": [ + { + "type": "approved", + "reviewer": "ToastHawaii", + "date": "2022-04-07T17:54:31.000Z", + "isMaintainer": false + } + ], + "mainBotCommentID": 1089240211, + "ciResult": "pass" +} diff --git a/src/_tests/fixtures/59713/mutations.json b/src/_tests/fixtures/59713/mutations.json new file mode 100644 index 00000000..4122dc3d --- /dev/null +++ b/src/_tests/fixtures/59713/mutations.json @@ -0,0 +1,20 @@ +[ + { + "mutation": "mutation ($input: UpdateIssueCommentInput!) {\n updateIssueComment(input: $input) {\n __typename\n }\n}\n", + "variables": { + "input": { + "id": "IC_kwDOAFz6BM5A7HyT", + "body": "@jablko Thank you for submitting this PR!\n\n***This is a live comment which I will keep updated.***\n\n## 1 package in this PR\n\n* `eonasdan-bootstrap-datetimepicker` — [on npm](https://www.npmjs.com/package/eonasdan-bootstrap-datetimepicker), [on unpkg](https://unpkg.com/browse/eonasdan-bootstrap-datetimepicker@latest/)\n - owner-approval: @ToastHawaii\n\n## Code Reviews\n\nBecause you edited one package and updated the tests (👏), I can help you merge this PR once someone else signs off on it.\n\nYou can test the changes of this PR [in the Playground](https://www.typescriptlang.org/play/?dtPR=59713&install-plugin=playground-dt-review).\n\n## Status\n\n * ✅ No merge conflicts\n * ✅ Continuous integration tests have passed\n * ✅ Most recent commit is approved by type definition owners, DT maintainers or others\n\nAll of the items on the list are green. **To merge, you need to post a comment including the string \"Ready to merge\"** to bring in your changes.\n\n## Inactive\n\nThis PR has been inactive for 17 days — please merge or say something if there's a problem, otherwise it will be closed!\n\n----------------------\n... diagnostics scrubbed ...\n" + } + } + }, + { + "mutation": "mutation ($input: UpdateIssueCommentInput!) {\n updateIssueComment(input: $input) {\n __typename\n }\n}\n", + "variables": { + "input": { + "id": "IC_kwDOAFz6BM5BnuVN", + "body": "Re-ping @jablko / @ToastHawaii:\n\nThis PR has been ready to merge for over a week, and I haven't seen any requests to merge it. I will close it on May 7th (in three weeks) if this doesn't happen.\n\n(If there's no reason to avoid merging it, please do so. Otherwise, if it shouldn't be merged or if it needs more time, please close it or turn it into a draft.)\n" + } + } + } +] diff --git a/src/_tests/fixtures/59713/result.json b/src/_tests/fixtures/59713/result.json new file mode 100644 index 00000000..d08fbe2c --- /dev/null +++ b/src/_tests/fixtures/59713/result.json @@ -0,0 +1,25 @@ +{ + "projectColumn": "Waiting for Author to Merge", + "labels": [ + "Owner Approved", + "Unmerged", + "Self Merge" + ], + "responseComments": [ + { + "tag": "welcome", + "status": "@jablko Thank you for submitting this PR!\n\n***This is a live comment which I will keep updated.***\n\n## 1 package in this PR\n\n* `eonasdan-bootstrap-datetimepicker` — [on npm](https://www.npmjs.com/package/eonasdan-bootstrap-datetimepicker), [on unpkg](https://unpkg.com/browse/eonasdan-bootstrap-datetimepicker@latest/)\n - owner-approval: @ToastHawaii\n\n## Code Reviews\n\nBecause you edited one package and updated the tests (👏), I can help you merge this PR once someone else signs off on it.\n\nYou can test the changes of this PR [in the Playground](https://www.typescriptlang.org/play/?dtPR=59713&install-plugin=playground-dt-review).\n\n## Status\n\n * ✅ No merge conflicts\n * ✅ Continuous integration tests have passed\n * ✅ Most recent commit is approved by type definition owners, DT maintainers or others\n\nAll of the items on the list are green. **To merge, you need to post a comment including the string \"Ready to merge\"** to bring in your changes.\n\n## Inactive\n\nThis PR has been inactive for 17 days — please merge or say something if there's a problem, otherwise it will be closed!\n\n----------------------\n... diagnostics scrubbed ..." + }, + { + "tag": "merge-offer", + "status": "@jablko: Everything looks good here. I am ready to merge this PR (at ee6b96f) on your behalf whenever you think it's ready.\n\nIf you'd like that to happen, please post a comment saying:\n\n> Ready to merge\n\nand I'll merge this PR almost instantly. Thanks for helping out! :heart:\n\n(@ToastHawaii: you can do this too.)" + }, + { + "tag": "Unmerged:nearly:2022-04-07", + "status": "Re-ping @jablko / @ToastHawaii:\n\nThis PR has been ready to merge for over a week, and I haven't seen any requests to merge it. I will close it on May 7th (in three weeks) if this doesn't happen.\n\n(If there's no reason to avoid merging it, please do so. Otherwise, if it shouldn't be merged or if it needs more time, please close it or turn it into a draft.)" + } + ], + "shouldClose": false, + "shouldMerge": false, + "shouldUpdateLabels": true +}