diff --git a/package.json b/package.json index e0da6d927..8fb9d9abd 100644 --- a/package.json +++ b/package.json @@ -71,6 +71,7 @@ "rimraf": "^3.0.0", "title-case": "^3.0.2", "ts-jest": "^25.0.0", + "type-fest": "^0.13.1", "typescript": "~3.8.3" }, "husky": { diff --git a/packages/core/package.json b/packages/core/package.json index 0ee7c9eb9..f2e23115f 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -38,12 +38,11 @@ }, "dependencies": { "@auto-it/bot-list": "link:../../packages/bot-list", - "@octokit/core": "2.4.2", - "@octokit/graphql": "4.3.1", - "@octokit/plugin-enterprise-compatibility": "1.2.2", - "@octokit/plugin-retry": "3.0.1", + "@octokit/graphql": "^4.4.0", + "@octokit/plugin-enterprise-compatibility": "^1.2.2", + "@octokit/plugin-retry": "^3.0.1", "@octokit/plugin-throttling": "^3.2.0", - "@octokit/rest": "16.43.1", + "@octokit/rest": "^17.9.0", "await-to-js": "^2.1.1", "chalk": "^4.0.0", "cosmiconfig": "6.0.0", diff --git a/packages/core/src/__tests__/git.test.ts b/packages/core/src/__tests__/git.test.ts index c6e22d5f3..49b75f0cc 100644 --- a/packages/core/src/__tests__/git.test.ts +++ b/packages/core/src/__tests__/git.test.ts @@ -496,7 +496,7 @@ describe("github", () => { }); await gh.getCommitsForPR(22); - expect(listCommits).toHaveBeenCalled(); + expect(paginate).toHaveBeenCalled(); }); test("getPullRequests", async () => { @@ -672,8 +672,7 @@ describe("github", () => { describe("error hook", () => { test("strip authorization headers from error", () => { - type HookError = import("@octokit/rest").Octokit.HookError; - const error = (headers = {}): HookError => ({ + const error = (headers = {}) => ({ name: "Request failed", message: "The request has failed", status: 404, @@ -685,9 +684,7 @@ describe("github", () => { expect(errorHook).toHaveBeenCalled(); - const errorHandler = errorHook.mock.calls[0][1] as ( - error: HookError - ) => void; + const errorHandler = errorHook.mock.calls[0][1] as (error: Error) => void; expect( errorHandler.bind(undefined, error({ authorization: "token abc" })) diff --git a/packages/core/src/auto.ts b/packages/core/src/auto.ts index 6797dc9f6..f4b5ec62b 100644 --- a/packages/core/src/auto.ts +++ b/packages/core/src/auto.ts @@ -1,4 +1,4 @@ -import { Octokit } from "@octokit/rest"; +import { RestEndpointMethodTypes } from "@octokit/rest"; import dotenv from "dotenv"; import envCi from "env-ci"; import fs from "fs"; @@ -117,6 +117,8 @@ interface BeforeShipitContext { releaseType: ShipitRelease; } +type PublishResponse = RestEndpointMethodTypes["repos"]["createRelease"]["response"]; + export interface IAutoHooks { /** Modify what is in the config. You must return the config in this hook. */ modifyConfig: SyncWaterfallHook<[LoadedAutoRc]>; @@ -154,9 +156,7 @@ export interface IAutoHooks { /** The generated release notes for the commits */ releaseNotes: string; /** The response from creating the new release. */ - response?: - | Octokit.Response - | Array>; + response?: PublishResponse | PublishResponse[]; } ] >; @@ -178,9 +178,7 @@ export interface IAutoHooks { commits: IExtendedCommit[]; } ], - | Octokit.Response - | Array> - | void + PublishResponse | PublishResponse[] | void >; /** Get git author. Typically from a package distribution description file. */ getAuthor: AsyncSeriesBailHook<[], Partial | void>; diff --git a/packages/core/src/git.ts b/packages/core/src/git.ts index f9873b9d8..001eef770 100644 --- a/packages/core/src/git.ts +++ b/packages/core/src/git.ts @@ -3,7 +3,7 @@ import { enterpriseCompatibility } from "@octokit/plugin-enterprise-compatibilit import path from "path"; import { retry } from "@octokit/plugin-retry"; import { throttling } from "@octokit/plugin-throttling"; -import { Octokit } from "@octokit/rest"; +import { Octokit, RestEndpointMethodTypes } from "@octokit/rest"; import { gitlogPromise as gitlog } from "gitlog"; import { HttpsProxyAgent } from "https-proxy-agent"; import tinyColor from "tinycolor2"; @@ -23,7 +23,10 @@ import { buildSearchQuery, ISearchResult } from "./match-sha-to-pr"; type Omit = Pick> & Partial>; -export type IPRInfo = Omit; +export type IPRInfo = Omit< + RestEndpointMethodTypes["repos"]["createStatus"]["parameters"], + "owner" | "repo" +>; export interface IGitOptions { /** Github repo owner (user) */ @@ -118,7 +121,7 @@ export default class Git { return true; } }, - onAbuseLimit: (retryAfter: number, opts: ThrottleOpts) => { + onAbuseLimit: (_: number, opts: ThrottleOpts) => { // does not retry, only logs an error this.logger.log.error( `Went over abuse rate limit ${opts.method} ${opts.url}` @@ -218,7 +221,7 @@ export default class Git { async getLabels(prNumber: number) { this.logger.verbose.info(`Getting labels for PR: ${prNumber}`); - const args: Octokit.IssuesListLabelsOnIssueParams = { + const args: RestEndpointMethodTypes["issues"]["listLabelsOnIssue"]["parameters"] = { owner: this.options.owner, repo: this.options.repo, issue_number: prNumber, @@ -245,7 +248,7 @@ export default class Git { async getPr(prNumber: number) { this.logger.verbose.info(`Getting info for PR: ${prNumber}`); - const args: Octokit.IssuesListLabelsOnIssueParams = { + const args: RestEndpointMethodTypes["issues"]["get"]["parameters"] = { owner: this.options.owner, repo: this.options.repo, issue_number: prNumber, @@ -295,8 +298,9 @@ export default class Git { }; try { - const labels: Octokit.IssuesListLabelsForRepoResponse = await this.github.paginate( - this.github.issues.listLabelsForRepo.endpoint(args) + const labels = await this.github.paginate( + this.github.issues.listLabelsForRepo, + args ); this.logger.veryVerbose.info( @@ -440,7 +444,7 @@ export default class Git { async getPullRequest(pr: number) { this.logger.verbose.info(`Getting Pull Request: ${pr}`); - const args: Octokit.PullsGetParams = { + const args: RestEndpointMethodTypes["pulls"]["get"]["parameters"] = { owner: this.options.owner, repo: this.options.repo, pull_number: pr, @@ -457,7 +461,9 @@ export default class Git { } /** Search to GitHub project's issue and pull requests */ - async searchRepo(options: Octokit.SearchIssuesAndPullRequestsParams) { + async searchRepo( + options: RestEndpointMethodTypes["search"]["issuesAndPullRequests"]["parameters"] + ) { const repo = `repo:${this.options.owner}/${this.options.repo}`; options.q = `${repo} ${options.q}`; @@ -497,7 +503,9 @@ export default class Git { this.logger.verbose.info("Creating status using:\n", args); - const result = await this.github.repos.createStatus(args); + const result = await this.github.repos.createStatus( + args as RestEndpointMethodTypes["repos"]["createStatus"]["parameters"] + ); this.logger.veryVerbose.info("Got response from createStatues\n", result); this.logger.verbose.info("Created status on GitHub."); @@ -621,7 +629,9 @@ export default class Git { } /** Get all the pull requests for a project */ - async getPullRequests(options?: Partial) { + async getPullRequests( + options?: Partial + ) { this.logger.verbose.info("Getting pull requests..."); const result = ( @@ -640,18 +650,14 @@ export default class Git { /** Get all the commits for a PR */ @memoize() - async getCommitsForPR( - pr: number - ): Promise { + async getCommitsForPR(pr: number) { this.logger.verbose.info(`Getting commits for PR #${pr}`); - const result = await this.github.paginate( - this.github.pulls.listCommits.endpoint({ - owner: this.options.owner.toLowerCase(), - repo: this.options.repo.toLowerCase(), - pull_number: pr, - }) - ); + const result = await this.github.paginate(this.github.pulls.listCommits, { + owner: this.options.owner.toLowerCase(), + repo: this.options.repo.toLowerCase(), + pull_number: pr, + }); this.logger.veryVerbose.info(`Got response from PR #${pr}\n`, result); this.logger.verbose.info(`Got commits for PR #${pr}.`); diff --git a/packages/core/src/release.ts b/packages/core/src/release.ts index 491ddc2bc..22c6e86fa 100644 --- a/packages/core/src/release.ts +++ b/packages/core/src/release.ts @@ -1,8 +1,4 @@ -import { - GraphQlQueryResponse, - GraphQlQueryResponseData, -} from "@octokit/graphql/dist-types/types"; -import { Octokit } from "@octokit/rest"; +import { AsyncReturnType } from "type-fest"; import on from "await-to-js"; import * as fs from "fs"; import chunk from "lodash.chunk"; @@ -252,7 +248,10 @@ export default class Release { .filter((q): q is string => Boolean(q)) .map((q) => this.git.graphql(q)) ); - const data = queries.filter((q): q is GraphQlQueryResponse => Boolean(q)); + type GraphQlQueryResponseData = NonNullable; + const data = queries.filter((q): q is GraphQlQueryResponseData => + Boolean(q) + ); if (!data.length) { return uniqueCommits; @@ -265,9 +264,9 @@ export default class Release { type QueryEntry = [string, GraphQlQueryResponseData]; - const entries = data.reduce( + const entries = data.reduce( (acc, result) => [...acc, ...(Object.entries(result) as QueryEntry[])], - [] as QueryEntry[] + [] ); await Promise.all( @@ -630,7 +629,7 @@ export default class Release { */ private getPRForRebasedCommits( commit: IExtendedCommit, - pullRequests: Octokit.PullsGetResponse[] + pullRequests: Array["data"]> ) { const matchPr = pullRequests.find( (pr) => pr.merge_commit_sha === commit.hash @@ -655,7 +654,7 @@ export default class Release { /** The GitHub user name of the git committer */ login?: string; }) - | Partial + | Partial> > = []; // If there is a pull request we will attempt to get the authors diff --git a/plugins/first-time-contributor/__tests__/first-time-contributor.test.ts b/plugins/first-time-contributor/__tests__/first-time-contributor.test.ts index 920036d57..b3aa6f760 100644 --- a/plugins/first-time-contributor/__tests__/first-time-contributor.test.ts +++ b/plugins/first-time-contributor/__tests__/first-time-contributor.test.ts @@ -1,7 +1,7 @@ import * as Auto from "@auto-it/core"; import makeCommitFromMsg from "@auto-it/core/dist/__tests__/make-commit-from-msg"; import Changelog from "@auto-it/core/dist/changelog"; -import { Octokit } from "@octokit/rest"; +import { RestEndpointMethodTypes } from "@octokit/rest"; import { makeChangelogHooks, makeHooks, @@ -16,7 +16,11 @@ exec.mockReturnValue(""); jest.spyOn(Auto, "execPromise").mockImplementation(exec); const setup = ( - contributors: Array> = [] + contributors: Array< + Partial< + RestEndpointMethodTypes["repos"]["listContributors"]["response"]["data"][number] + > + > = [] ) => { const plugin = new FirstTimeContributor(); const hooks = makeHooks(); diff --git a/plugins/first-time-contributor/src/index.ts b/plugins/first-time-contributor/src/index.ts index 37016909b..b7e7c34ef 100644 --- a/plugins/first-time-contributor/src/index.ts +++ b/plugins/first-time-contributor/src/index.ts @@ -14,6 +14,7 @@ export default class FirstTimeContributorPlugin implements IPlugin { /** Tap into auto plugin points. */ apply(auto: Auto) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any const cache: Record> = {}; auto.hooks.onCreateChangelog.tap(this.name, (changelog) => { diff --git a/plugins/npm/src/index.ts b/plugins/npm/src/index.ts index 490b6ea3a..66b6f4f34 100644 --- a/plugins/npm/src/index.ts +++ b/plugins/npm/src/index.ts @@ -3,7 +3,7 @@ import * as fs from "fs"; import parseAuthor from "parse-author"; import path from "path"; import { Memoize as memoize } from "typescript-memoize"; -import { Octokit } from "@octokit/rest"; +import { RestEndpointMethodTypes } from "@octokit/rest"; import * as t from "io-ts"; import { execSync } from "child_process"; import on from "await-to-js"; @@ -1013,9 +1013,12 @@ export default class NPMPlugin implements IPlugin { this.renderMonorepoChangelog = false; - return releases.filter((release): release is Octokit.Response< - Octokit.ReposCreateReleaseResponse - > => Boolean(release)); + return releases.filter( + ( + release + ): release is RestEndpointMethodTypes["repos"]["createRelease"]["response"] => + Boolean(release) + ); } }); } diff --git a/plugins/released/src/index.ts b/plugins/released/src/index.ts index 60aeca8f2..e34a28a37 100644 --- a/plugins/released/src/index.ts +++ b/plugins/released/src/index.ts @@ -1,6 +1,6 @@ import { Auto, IPlugin, validatePluginConfiguration } from "@auto-it/core"; import { IExtendedCommit } from "@auto-it/core/dist/log-parse"; -import { Octokit } from "@octokit/rest"; +import { RestEndpointMethodTypes } from "@octokit/rest"; import merge from "deepmerge"; import * as t from "io-ts"; @@ -114,7 +114,9 @@ export default class ReleasedLabelPlugin implements IPlugin { private async addReleased( auto: Auto, commit: IExtendedCommit, - releases: Array> + releases: Array< + RestEndpointMethodTypes["repos"]["createRelease"]["response"] + > ) { const messages = [commit.subject]; const isPrerelease = releases.some((r) => r.data.prerelease); @@ -185,7 +187,9 @@ export default class ReleasedLabelPlugin implements IPlugin { /** Whether the release was a prerelease */ isPrerelease?: boolean; /** All of the releases that happened */ - releases: Array>; + releases: Array< + RestEndpointMethodTypes["repos"]["createRelease"]["response"] + >; }) { // leave a comment with the new version const urls = releases.map((release) => diff --git a/plugins/slack/package.json b/plugins/slack/package.json index 8e51fc373..ad464a4b8 100644 --- a/plugins/slack/package.json +++ b/plugins/slack/package.json @@ -39,7 +39,7 @@ "dependencies": { "@atomist/slack-messages": "~1.1.0", "@auto-it/core": "link:../../packages/core", - "@octokit/rest": "16.43.1", + "@octokit/rest": "^17.9.0", "fp-ts": "^2.5.3", "https-proxy-agent": "^5.0.0", "io-ts": "^2.1.2", diff --git a/plugins/slack/src/index.ts b/plugins/slack/src/index.ts index 9837453e5..80cbaa087 100644 --- a/plugins/slack/src/index.ts +++ b/plugins/slack/src/index.ts @@ -1,5 +1,5 @@ import { githubToSlack } from "@atomist/slack-messages"; -import { Octokit } from "@octokit/rest"; +import { RestEndpointMethodTypes } from "@octokit/rest"; import createHttpsProxyAgent from "https-proxy-agent"; import { @@ -135,7 +135,9 @@ export default class SlackPlugin implements IPlugin { auto: Auto, newVersion: string, releaseNotes: string, - releases: Array> + releases: Array< + RestEndpointMethodTypes["repos"]["createRelease"]["response"] + > ) { if (!auto.git) { return; @@ -163,7 +165,7 @@ export default class SlackPlugin implements IPlugin { link_names: 1, }), headers: { "Content-Type": "application/json" }, - agent: proxyUrl ? createHttpsProxyAgent(proxyUrl) : undefined + agent: proxyUrl ? createHttpsProxyAgent(proxyUrl) : undefined, }); auto.logger.verbose.info("Posted release notes to slack."); diff --git a/plugins/upload-assets/__tests__/upload-assets.test.ts b/plugins/upload-assets/__tests__/upload-assets.test.ts index 2c7dfdcd5..95bbf15de 100644 --- a/plugins/upload-assets/__tests__/upload-assets.test.ts +++ b/plugins/upload-assets/__tests__/upload-assets.test.ts @@ -1,11 +1,16 @@ import Auto from "@auto-it/core"; import { makeHooks } from "@auto-it/core/dist/utils/make-hooks"; -import { Octokit } from "@octokit/rest"; +import { RestEndpointMethodTypes } from "@octokit/rest"; import path from "path"; import { dummyLog } from "@auto-it/core/dist/utils/logger"; import UploadAssets from "../src"; +const options = { + owner: "test", + repo: "repo", +}; + describe("Upload Assets Plugin", () => { test("should do nothing without a response", async () => { const plugin = new UploadAssets([ @@ -17,7 +22,7 @@ describe("Upload Assets Plugin", () => { plugin.apply(({ hooks, logger: dummyLog(), - git: { github: { repos: { uploadReleaseAsset } } }, + git: { options, github: { repos: { uploadReleaseAsset } } }, } as unknown) as Auto); await hooks.afterRelease.promise({ @@ -40,7 +45,7 @@ describe("Upload Assets Plugin", () => { plugin.apply(({ hooks, logger: dummyLog(), - git: { github: { repos: { uploadReleaseAsset } } }, + git: { options, github: { repos: { uploadReleaseAsset } } }, } as unknown) as Auto); await hooks.afterRelease.promise({ @@ -49,8 +54,8 @@ describe("Upload Assets Plugin", () => { commits: [], releaseNotes: "", response: { - data: { upload_url: "https://foo.com" }, - } as Octokit.Response, + data: { id: "123" }, + } as any, }); expect(uploadReleaseAsset).toHaveBeenCalledWith( @@ -60,7 +65,7 @@ describe("Upload Assets Plugin", () => { "content-type": "application/octet-stream", }, name: "macos", - url: "https://foo.com", + release_id: "123", }) ); }); @@ -78,7 +83,7 @@ describe("Upload Assets Plugin", () => { plugin.apply(({ hooks, logger: dummyLog(), - git: { github: { repos: { uploadReleaseAsset } } }, + git: { options, github: { repos: { uploadReleaseAsset } } }, } as unknown) as Auto); await hooks.afterRelease.promise({ @@ -88,7 +93,7 @@ describe("Upload Assets Plugin", () => { releaseNotes: "", response: { data: { upload_url: "https://foo.com" }, - } as Octokit.Response, + } as RestEndpointMethodTypes["repos"]["createRelease"]["response"], }); expect(uploadReleaseAsset).toHaveBeenCalledTimes(2); @@ -104,7 +109,7 @@ describe("Upload Assets Plugin", () => { plugin.apply(({ hooks, logger: dummyLog(), - git: { github: { repos: { uploadReleaseAsset } } }, + git: { options, github: { repos: { uploadReleaseAsset } } }, } as unknown) as Auto); await hooks.afterRelease.promise({ @@ -114,7 +119,7 @@ describe("Upload Assets Plugin", () => { releaseNotes: "", response: { data: { upload_url: "https://foo.com" }, - } as Octokit.Response, + } as RestEndpointMethodTypes["repos"]["createRelease"]["response"], }); expect(uploadReleaseAsset).toHaveBeenCalledTimes(2); diff --git a/plugins/upload-assets/package.json b/plugins/upload-assets/package.json index 503bf0776..19cc643d4 100644 --- a/plugins/upload-assets/package.json +++ b/plugins/upload-assets/package.json @@ -47,6 +47,6 @@ "tslib": "1.11.1" }, "devDependencies": { - "@octokit/rest": "^16.28.1" + "@octokit/rest": "^17.9.0" } } diff --git a/plugins/upload-assets/src/index.ts b/plugins/upload-assets/src/index.ts index d2d021cd9..ef6ba68b0 100644 --- a/plugins/upload-assets/src/index.ts +++ b/plugins/upload-assets/src/index.ts @@ -67,8 +67,10 @@ export default class UploadAssetsPlugin implements IPlugin { const type = await FileType.fromBuffer(file); const options = { - data: file, + data: file.toString(), name: path.basename(asset), + owner: auto.git.options.owner, + repo: auto.git.options.repo, headers: { "content-length": stats.size, "content-type": type ? type.mime : "application/octet-stream", @@ -81,14 +83,14 @@ export default class UploadAssetsPlugin implements IPlugin { response.map((r) => auto.git!.github.repos.uploadReleaseAsset({ ...options, - url: r.data.upload_url, + release_id: r.data.id, }) ) ); } else { await auto.git.github.repos.uploadReleaseAsset({ ...options, - url: response.data.upload_url, + release_id: response.data.id, }); } diff --git a/typings/octokit-enterprise.d.ts b/typings/octokit-enterprise.d.ts deleted file mode 100644 index b82619434..000000000 --- a/typings/octokit-enterprise.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -// TODO: delete when @octokit/rest@17.0.0 is out -declare module '@octokit/plugin-enterprise-compatibility'; diff --git a/typings/octokit-plugin-retry.d.ts b/typings/octokit-plugin-retry.d.ts deleted file mode 100644 index ef5f23d43..000000000 --- a/typings/octokit-plugin-retry.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -// TODO: delete when @octokit/rest@17.0.0 is out -declare module '@octokit/plugin-retry'; diff --git a/typings/octokit-plugin-throttling.d.ts b/typings/octokit-plugin-throttling.d.ts deleted file mode 100644 index 2750512e5..000000000 --- a/typings/octokit-plugin-throttling.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -// TODO: delete when @octokit/rest@17.0.0 is out -declare module '@octokit/plugin-throttling'; diff --git a/yarn.lock b/yarn.lock index 71ed6a95e..49a070d3c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8,18 +8,17 @@ integrity sha512-m2OzlTDbhvzK4hgswH9Lx0cdpq1AntXu53Klz5RGkFfuoDvKsnlU7tmtVfNWtUiP0zZbGtrb/BZYH7aB6TRnMA== "@auto-it/bot-list@link:packages/bot-list": - version "9.32.0" + version "9.32.3" "@auto-it/core@link:packages/core": - version "9.32.0" + version "9.32.3" dependencies: "@auto-it/bot-list" "link:packages/bot-list" - "@octokit/core" "2.4.2" - "@octokit/graphql" "4.3.1" - "@octokit/plugin-enterprise-compatibility" "1.2.2" - "@octokit/plugin-retry" "3.0.1" + "@octokit/graphql" "^4.4.0" + "@octokit/plugin-enterprise-compatibility" "^1.2.2" + "@octokit/plugin-retry" "^3.0.1" "@octokit/plugin-throttling" "^3.2.0" - "@octokit/rest" "16.43.1" + "@octokit/rest" "^17.9.0" await-to-js "^2.1.1" chalk "^4.0.0" cosmiconfig "6.0.0" @@ -50,7 +49,7 @@ url-join "^4.0.0" "@auto-it/npm@link:plugins/npm": - version "9.32.0" + version "9.32.3" dependencies: "@auto-it/core" "link:packages/core" await-to-js "^2.1.1" @@ -68,7 +67,7 @@ user-home "^2.0.0" "@auto-it/released@link:plugins/released": - version "9.32.0" + version "9.32.3" dependencies: "@auto-it/core" "link:packages/core" deepmerge "^4.0.0" @@ -2377,28 +2376,28 @@ dependencies: "@octokit/types" "^2.0.0" -"@octokit/core@2.4.2": - version "2.4.2" - resolved "https://registry.yarnpkg.com/@octokit/core/-/core-2.4.2.tgz#c22e583afc97e74015ea5bfd3ffb3ffc56c186ed" - integrity sha512-fUx/Qt774cgiPhb3HRKfdl6iufVL/ltECkwkCg373I4lIPYvAPY4cbidVZqyVqHI+ThAIlFlTW8FT4QHChv3Sg== +"@octokit/core@^2.4.3": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@octokit/core/-/core-2.5.0.tgz#4706258893a7ac6ab35d58d2fb9f2d2ba19a41a5" + integrity sha512-uvzmkemQrBgD8xuGbjhxzJN1darJk9L2cS+M99cHrDG2jlSVpxNJVhoV86cXdYBqdHCc9Z995uLCczaaHIYA6Q== dependencies: "@octokit/auth-token" "^2.4.0" "@octokit/graphql" "^4.3.1" - "@octokit/request" "^5.3.1" + "@octokit/request" "^5.4.0" "@octokit/types" "^2.0.0" before-after-hook "^2.1.0" universal-user-agent "^5.0.0" -"@octokit/endpoint@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-5.5.0.tgz#d7e7960ffe39096cb67062f07efa84db52b20edb" - integrity sha512-TXYS6zXeBImNB9BVj+LneMDqXX+H0exkOpyXobvp92O3B1348QsKnNioISFKgOMsb3ibZvQGwCdpiwQd3KAjIA== +"@octokit/endpoint@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.0.tgz#4c7acd79ab72df78732a7d63b09be53ec5a2230b" + integrity sha512-3nx+MEYoZeD0uJ+7F/gvELLvQJzLXhep2Az0bBSXagbApDvDW0LWwpnAIY/hb0Jwe17A0fJdz0O12dPh05cj7A== dependencies: - "@octokit/types" "^1.0.0" + "@octokit/types" "^2.0.0" is-plain-object "^3.0.0" - universal-user-agent "^4.0.0" + universal-user-agent "^5.0.0" -"@octokit/graphql@4.3.1", "@octokit/graphql@^4.3.1": +"@octokit/graphql@^4.3.1": version "4.3.1" resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.3.1.tgz#9ee840e04ed2906c7d6763807632de84cdecf418" integrity sha512-hCdTjfvrK+ilU2keAdqNBWOk+gm1kai1ZcdjRfB30oA3/T6n53UVJb7w0L5cR3/rhU91xT3HSqCd+qbvH06yxA== @@ -2407,7 +2406,16 @@ "@octokit/types" "^2.0.0" universal-user-agent "^4.0.0" -"@octokit/plugin-enterprise-compatibility@1.2.2": +"@octokit/graphql@^4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.4.0.tgz#4540b48bbf796b837b311ba6ea5104760db530ca" + integrity sha512-Du3hAaSROQ8EatmYoSAJjzAz3t79t9Opj/WY1zUgxVUGfIKn0AEjg+hlOLscF6fv6i/4y/CeUvsWgIfwMkTccw== + dependencies: + "@octokit/request" "^5.3.0" + "@octokit/types" "^2.0.0" + universal-user-agent "^5.0.0" + +"@octokit/plugin-enterprise-compatibility@^1.2.2": version "1.2.2" resolved "https://registry.yarnpkg.com/@octokit/plugin-enterprise-compatibility/-/plugin-enterprise-compatibility-1.2.2.tgz#a30b635b63760e1504e57af5cf54da058b32a1de" integrity sha512-LjESzkcoQHm1JN3drgjttbSk5fYNI8EPtcAiDqpnok0oL69vWIb5tcjyKrg7fPwzyRl/+A+UQbkIOsG2LJh09w== @@ -2427,6 +2435,13 @@ dependencies: "@octokit/types" "^2.0.1" +"@octokit/plugin-paginate-rest@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.2.0.tgz#9ae0c14c1b90ec0d96d2ef1b44706b4505a91cee" + integrity sha512-KoNxC3PLNar8UJwR+1VMQOw2IoOrrFdo5YOiDKnBhpVbKpw+zkBKNMNKwM44UWL25Vkn0Sl3nYIEGKY+gW5ebw== + dependencies: + "@octokit/types" "^2.12.1" + "@octokit/plugin-request-log@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.0.tgz#eef87a431300f6148c39a7f75f8cfeb218b2547e" @@ -2440,7 +2455,15 @@ "@octokit/types" "^2.0.1" deprecation "^2.3.1" -"@octokit/plugin-retry@3.0.1": +"@octokit/plugin-rest-endpoint-methods@3.11.0": + version "3.11.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-3.11.0.tgz#96e69d7904bcbb6172be2bc1c70757ff1377fbfe" + integrity sha512-D31cBYhlOt6Om2xNkCNZUjyWdaDKUfa4HwpLwL8Dnu8aDuVuuOPLUhFMUDE0GvfqlNQFrNtU7n5HaZm+KmRdsw== + dependencies: + "@octokit/types" "^2.16.0" + deprecation "^2.3.1" + +"@octokit/plugin-retry@^3.0.1": version "3.0.1" resolved "https://registry.yarnpkg.com/@octokit/plugin-retry/-/plugin-retry-3.0.1.tgz#4f17e4349b89754fd06951b548f08e2d8e7dd311" integrity sha512-X+VALkeYyE4XGMHOoOnRS1/OvwvleZ2Xe3yxshaAKJrA4pbjBYptDx7IAY9xQj5JYY9vlCKUsXEZMWLRNxfViw== @@ -2456,7 +2479,7 @@ "@octokit/types" "^2.0.1" bottleneck "^2.15.3" -"@octokit/request-error@^1.0.1", "@octokit/request-error@^1.0.2": +"@octokit/request-error@^1.0.2": version "1.2.0" resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-1.2.0.tgz#a64d2a9d7a13555570cd79722de4a4d76371baaa" integrity sha512-DNBhROBYjjV/I9n7A8kVkmQNkqFAMem90dSxqvPq57e2hBr7mNTX98y3R2zDpqMQHVRpBDjsvsfIGgBzy+4PAg== @@ -2474,21 +2497,21 @@ deprecation "^2.0.0" once "^1.4.0" -"@octokit/request@^5.2.0", "@octokit/request@^5.3.0", "@octokit/request@^5.3.1": - version "5.3.1" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.3.1.tgz#3a1ace45e6f88b1be4749c5da963b3a3b4a2f120" - integrity sha512-5/X0AL1ZgoU32fAepTfEoggFinO3rxsMLtzhlUX+RctLrusn/CApJuGFCd0v7GMFhF+8UiCsTTfsu7Fh1HnEJg== +"@octokit/request@^5.2.0", "@octokit/request@^5.3.0", "@octokit/request@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.4.0.tgz#52382c830f0cf3295b5a03e308872ac0f5ccba9b" + integrity sha512-uAJO6GI8z8VHBqtY7VTL9iFy1Y+UTp5ShpI97tY5z0qBfYKE9rZCRsCm23VmF00x+IoNJ7a0nuVITs/+wS9/mg== dependencies: - "@octokit/endpoint" "^5.5.0" - "@octokit/request-error" "^1.0.1" - "@octokit/types" "^2.0.0" + "@octokit/endpoint" "^6.0.0" + "@octokit/request-error" "^2.0.0" + "@octokit/types" "^2.8.2" deprecation "^2.0.0" is-plain-object "^3.0.0" node-fetch "^2.3.0" once "^1.4.0" - universal-user-agent "^4.0.0" + universal-user-agent "^5.0.0" -"@octokit/rest@16.43.1", "@octokit/rest@^16.28.1", "@octokit/rest@^16.28.4": +"@octokit/rest@^16.28.4": version "16.43.1" resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-16.43.1.tgz#3b11e7d1b1ac2bbeeb23b08a17df0b20947eda6b" integrity sha512-gfFKwRT/wFxq5qlNjnW2dh+qh74XgTQ2B179UX5K1HYCluioWj8Ndbgqw2PVqa1NnVJkGHp2ovMpVn/DImlmkw== @@ -2510,12 +2533,15 @@ once "^1.4.0" universal-user-agent "^4.0.0" -"@octokit/types@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-1.1.0.tgz#6c9b286f9766f8cc6c5bab9fd3eb6a7aa019c586" - integrity sha512-t4ZD74UnNVMq6kZBDZceflRKK3q4o5PoCKMAGht0RK84W57tqonqKL3vCxJHtbGExdan9RwV8r7VJBZxIM1O7Q== +"@octokit/rest@^17.9.0": + version "17.9.0" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-17.9.0.tgz#48d20196eb3dbe1cb507d0e46e01d17c24cc3d0e" + integrity sha512-Ff2jwS2OizWVaiCozOJevQ97V+mKjlQAt//lU6a/lhWDfHsZLXm/k1RsyTKVbyuiriDi7pg899wCU59nYfKnmQ== dependencies: - "@types/node" "^12.11.1" + "@octokit/core" "^2.4.3" + "@octokit/plugin-paginate-rest" "^2.2.0" + "@octokit/plugin-request-log" "^1.0.0" + "@octokit/plugin-rest-endpoint-methods" "3.11.0" "@octokit/types@^2.0.0", "@octokit/types@^2.0.1": version "2.1.1" @@ -2524,6 +2550,27 @@ dependencies: "@types/node" ">= 8" +"@octokit/types@^2.12.1", "@octokit/types@^2.16.0": + version "2.16.2" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-2.16.2.tgz#4c5f8da3c6fecf3da1811aef678fda03edac35d2" + integrity sha512-O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q== + dependencies: + "@types/node" ">= 8" + +"@octokit/types@^2.8.2": + version "2.8.2" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-2.8.2.tgz#08d1165354637ef32c3134b4b39b7f17bdc17aef" + integrity sha512-8cs4DjRAzFoGo1ieUhDyrTdPK016V3JD/H00nbnojSCUYfOXnnJ1owUaAT/3OebTzp/tgdTG6M+8PdCTJzI+/w== + dependencies: + "@types/node" ">= 8" + +"@octokit/types@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-3.0.1.tgz#0706510a6a4edd1925a2ef539773b1b6bfd62d74" + integrity sha512-hSWiTHlXO66VVkZQRXr2Le7xeR29CxOsrKOpKlr6/Oua9vnGBncelaNSnS8Ybjbcy0NJD6QgooQWGsbNK4hl2g== + dependencies: + "@types/node" ">= 8" + "@samverschueren/stream-to-observable@^0.3.0": version "0.3.0" resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz#ecdf48d532c58ea477acfcab80348424f8d0662f" @@ -2755,11 +2802,6 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.6.tgz#9cbfcb62c50947217f4d88d4d274cc40c22625a9" integrity sha512-Fvm24+u85lGmV4hT5G++aht2C5I4Z4dYlWZIh62FAfFO/TfzXtPpoLI6I7AuBWkIFqZCnhFOoTT7RjjaIL5Fjg== -"@types/node@^12.11.1": - version "12.12.21" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.21.tgz#aa44a6363291c7037111c47e4661ad210aded23f" - integrity sha512-8sRGhbpU+ck1n0PGAUgVrWrWdjSW2aqNeyC15W88GRsMpSwzv6RJGlLhE7s2RhVSOdyDmxbqlWSeThq4/7xqlA== - "@types/normalize-package-data@^2.4.0": version "2.4.0" resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" @@ -14916,6 +14958,11 @@ type-detect@4.0.8: resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== +type-fest@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" + integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== + type-fest@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1"