From 797c54a25631b1e82a88a731e3171a079153c6e3 Mon Sep 17 00:00:00 2001 From: wanhose Date: Mon, 17 Oct 2022 18:31:08 +0200 Subject: [PATCH] feat(api): create issues instead of send emails --- packages/api/.env | 1 + packages/api/package.json | 3 +- packages/api/src/routes/v2/report.ts | 42 +- packages/api/src/services/environment.ts | 5 + packages/api/src/services/octokit.ts | 4 + packages/api/tsconfig.json | 3 +- yarn.lock | 511 ++++++++++++++++++++++- 7 files changed, 557 insertions(+), 12 deletions(-) create mode 100644 packages/api/src/services/octokit.ts diff --git a/packages/api/.env b/packages/api/.env index 3e21580..d43f360 100644 --- a/packages/api/.env +++ b/packages/api/.env @@ -1,2 +1,3 @@ +GITHUB_TOKEN=? MAIL_PASS=? MAIL_USER=? diff --git a/packages/api/package.json b/packages/api/package.json index 51e5d32..b891661 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -13,7 +13,8 @@ "dotenv": "^16.0.3", "fastify": "^4.8.1", "node-fetch": "^2.6.7", - "nodemailer": "^6.8.0" + "nodemailer": "^6.8.0", + "octokit": "^2.0.9" }, "devDependencies": { "@tsconfig/node16": "^1.0.3", diff --git a/packages/api/src/routes/v2/report.ts b/packages/api/src/routes/v2/report.ts index 06ec612..b338083 100644 --- a/packages/api/src/routes/v2/report.ts +++ b/packages/api/src/routes/v2/report.ts @@ -1,5 +1,6 @@ import { FastifyInstance, RouteShorthandOptions } from 'fastify'; -import { sendMail } from 'services/mailing'; +import environment from 'services/environment'; +import { octokit } from 'services/octokit'; type PostReportBody = { reason?: string; @@ -34,13 +35,40 @@ export default (server: FastifyInstance, options: RouteShorthandOptions, done: ( }, }, async (request, reply) => { - const { reason = 'Unknown', url, userAgent = 'Unknown', version } = request.body; - const html = `Site: ${url}
Reason: ${reason}
User-Agent: ${userAgent}
Version: ${version}`; - const subject = 'Cookie Dialog Monster Report'; - const to = 'hello@wanhose.dev'; + try { + const issues = await octokit.request('GET /repos/{owner}/{repo}/issues', { + owner: environment.github.owner, + repo: environment.github.repo, + }); + const url = new URL(request.body.url).hostname + .split('.') + .slice(-3) + .join('.') + .replace('www.', ''); - sendMail({ html, to, subject }); - reply.send({ success: true }); + if (issues.data.some((issue) => issue.title.includes(url))) { + throw new Error(); + } + + await octokit.request('POST /repos/{owner}/{repo}/issues', { + assignees: [environment.github.owner], + body: [ + '## Specifications', + `- Reason: ${request.body.reason ?? '-'}`, + `- URL: ${request.body.url}`, + `- User-Agent: ${request.body.userAgent ?? '-'}`, + `- Version: ${request.body.version}`, + ].join('\n'), + labels: ['bug'], + owner: environment.github.owner, + repo: environment.github.repo, + title: url, + }); + + reply.send({ success: true }); + } catch (error) { + reply.send({ errors: [error.message], success: false }); + } } ); diff --git a/packages/api/src/services/environment.ts b/packages/api/src/services/environment.ts index 00d3653..181e059 100644 --- a/packages/api/src/services/environment.ts +++ b/packages/api/src/services/environment.ts @@ -3,6 +3,11 @@ import dotenv from 'dotenv'; dotenv.config(); export default { + github: { + owner: 'wanhose', + repo: 'cookie-dialog-monster', + token: process.env.GITHUB_TOKEN ?? '', + }, mail: { pass: process.env.MAIL_PASS ?? '', user: process.env.MAIL_USER ?? '', diff --git a/packages/api/src/services/octokit.ts b/packages/api/src/services/octokit.ts new file mode 100644 index 0000000..c943fad --- /dev/null +++ b/packages/api/src/services/octokit.ts @@ -0,0 +1,4 @@ +import { Octokit } from 'octokit'; +import environment from './environment'; + +export const octokit = new Octokit({ auth: environment.github.token }); diff --git a/packages/api/tsconfig.json b/packages/api/tsconfig.json index f81403b..ff6e227 100644 --- a/packages/api/tsconfig.json +++ b/packages/api/tsconfig.json @@ -5,7 +5,8 @@ "compilerOptions": { "baseUrl": "src", "outDir": "build", - "rootDir": "src" + "rootDir": "src", + "useUnknownInCatchVariables": false }, "extends": "@tsconfig/node16/tsconfig.json", "include": ["src/**/*.ts"] diff --git a/yarn.lock b/yarn.lock index d08c249..c08fc28 100644 --- a/yarn.lock +++ b/yarn.lock @@ -445,6 +445,301 @@ __metadata: languageName: node linkType: hard +"@octokit/app@npm:^13.0.5": + version: 13.0.11 + resolution: "@octokit/app@npm:13.0.11" + dependencies: + "@octokit/auth-app": ^4.0.0 + "@octokit/auth-unauthenticated": ^3.0.0 + "@octokit/core": ^4.0.0 + "@octokit/oauth-app": ^4.0.7 + "@octokit/plugin-paginate-rest": ^5.0.0 + "@octokit/types": ^8.0.0 + "@octokit/webhooks": ^10.0.0 + checksum: 7de7a7058945cb5151c92ae9f968f6c8d2115be60f7894493166f19243ac6714b63fadb63246f34e421f30579a1beb3541301994ae71dd0c529538698c181284 + languageName: node + linkType: hard + +"@octokit/auth-app@npm:^4.0.0": + version: 4.0.7 + resolution: "@octokit/auth-app@npm:4.0.7" + dependencies: + "@octokit/auth-oauth-app": ^5.0.0 + "@octokit/auth-oauth-user": ^2.0.0 + "@octokit/request": ^6.0.0 + "@octokit/request-error": ^3.0.0 + "@octokit/types": ^8.0.0 + "@types/lru-cache": ^5.1.0 + deprecation: ^2.3.1 + lru-cache: ^6.0.0 + universal-github-app-jwt: ^1.0.1 + universal-user-agent: ^6.0.0 + checksum: 880de7341f47c5a48822612f50ae453fb0990a188b29afdb2f80a1f7e703c88e068d05a4edc1aa9a8204c730b6f70cf2772fbd5da032fee4986a5266ebdda4c7 + languageName: node + linkType: hard + +"@octokit/auth-oauth-app@npm:^5.0.0": + version: 5.0.4 + resolution: "@octokit/auth-oauth-app@npm:5.0.4" + dependencies: + "@octokit/auth-oauth-device": ^4.0.0 + "@octokit/auth-oauth-user": ^2.0.0 + "@octokit/request": ^6.0.0 + "@octokit/types": ^8.0.0 + "@types/btoa-lite": ^1.0.0 + btoa-lite: ^1.0.0 + universal-user-agent: ^6.0.0 + checksum: 8a208837ac5c72e6fa5075a26b4d1c65b80c124151f6da1baf8b1efbb3db3bd54df9088893956b6aed00cb92e3f143e3979ee2c6f4686d59e579840e534b8f01 + languageName: node + linkType: hard + +"@octokit/auth-oauth-device@npm:^4.0.0": + version: 4.0.3 + resolution: "@octokit/auth-oauth-device@npm:4.0.3" + dependencies: + "@octokit/oauth-methods": ^2.0.0 + "@octokit/request": ^6.0.0 + "@octokit/types": ^8.0.0 + universal-user-agent: ^6.0.0 + checksum: 69d2d95f19857c2fad73d68aebfa6b259c528a65ddf732aa06325f9dbc953b0d15bf0316166691ad807346a979f4a8ac6c3a9077fcc57c56a50b2a24aaee37b4 + languageName: node + linkType: hard + +"@octokit/auth-oauth-user@npm:^2.0.0": + version: 2.0.4 + resolution: "@octokit/auth-oauth-user@npm:2.0.4" + dependencies: + "@octokit/auth-oauth-device": ^4.0.0 + "@octokit/oauth-methods": ^2.0.0 + "@octokit/request": ^6.0.0 + "@octokit/types": ^8.0.0 + btoa-lite: ^1.0.0 + universal-user-agent: ^6.0.0 + checksum: 808784d6684c5cff7228af09359388a477da46c1b14cfb82f81bdd1eb8cfcfad02a0f8146a4214f5b3758eeb1d614594e3d28b876e94e3cac2bf322b3ee5fad0 + languageName: node + linkType: hard + +"@octokit/auth-token@npm:^3.0.0": + version: 3.0.2 + resolution: "@octokit/auth-token@npm:3.0.2" + dependencies: + "@octokit/types": ^8.0.0 + checksum: c7204770a6cb1661379c31b5a26779b509324446e61a4902893a69fd471738c817afc470f8ac8d86ad827738cc953046d27fbb87fc81782ff10e366b70241f4e + languageName: node + linkType: hard + +"@octokit/auth-unauthenticated@npm:^3.0.0": + version: 3.0.3 + resolution: "@octokit/auth-unauthenticated@npm:3.0.3" + dependencies: + "@octokit/request-error": ^3.0.0 + "@octokit/types": ^8.0.0 + checksum: be404cef13d67fa033f180ff61a1bb40a6b79742afe0257c8026cf97dcf22df304b30a67257c87a6e54a60135513de81f9ac05a055126f465dab129a29c58fe6 + languageName: node + linkType: hard + +"@octokit/core@npm:^4.0.0, @octokit/core@npm:^4.0.4": + version: 4.1.0 + resolution: "@octokit/core@npm:4.1.0" + dependencies: + "@octokit/auth-token": ^3.0.0 + "@octokit/graphql": ^5.0.0 + "@octokit/request": ^6.0.0 + "@octokit/request-error": ^3.0.0 + "@octokit/types": ^8.0.0 + before-after-hook: ^2.2.0 + universal-user-agent: ^6.0.0 + checksum: 4e53e02ff3ebe808b74385be0055cc1cce4b548060b20e3f2d5dd1bf7877ff7b6556f11278edc070842bf24aa869f9f59a02638f1b14083eb290b9e297447a2d + languageName: node + linkType: hard + +"@octokit/endpoint@npm:^7.0.0": + version: 7.0.3 + resolution: "@octokit/endpoint@npm:7.0.3" + dependencies: + "@octokit/types": ^8.0.0 + is-plain-object: ^5.0.0 + universal-user-agent: ^6.0.0 + checksum: c36b1577062e51d1683779a59c75d046d59f9a5c3a0f046d465e6c4c39f64bfc3a3052b42fa91a4552c7903ec382c604b4a2e1aadebdf7458191849ede5d4978 + languageName: node + linkType: hard + +"@octokit/graphql@npm:^5.0.0": + version: 5.0.3 + resolution: "@octokit/graphql@npm:5.0.3" + dependencies: + "@octokit/request": ^6.0.0 + "@octokit/types": ^8.0.0 + universal-user-agent: ^6.0.0 + checksum: cc02df32ccd0dc2f500a165381ed1db27f9499767e450b5275f0a366637985d5f42ca40915eda31f5675e652e18dbb423514cba263a11877f52cce2a65aa4faf + languageName: node + linkType: hard + +"@octokit/oauth-app@npm:^4.0.6, @octokit/oauth-app@npm:^4.0.7": + version: 4.1.0 + resolution: "@octokit/oauth-app@npm:4.1.0" + dependencies: + "@octokit/auth-oauth-app": ^5.0.0 + "@octokit/auth-oauth-user": ^2.0.0 + "@octokit/auth-unauthenticated": ^3.0.0 + "@octokit/core": ^4.0.0 + "@octokit/oauth-authorization-url": ^5.0.0 + "@octokit/oauth-methods": ^2.0.0 + "@types/aws-lambda": ^8.10.83 + fromentries: ^1.3.1 + universal-user-agent: ^6.0.0 + checksum: 031f8480b7ad282e54b2749b4260c0e5bc306c68b1d9b7555a43c4a6c38e8c268e0c7d48674018c0c021efff4722792814aff99d5ec2a2334fffb18f745bab97 + languageName: node + linkType: hard + +"@octokit/oauth-authorization-url@npm:^5.0.0": + version: 5.0.0 + resolution: "@octokit/oauth-authorization-url@npm:5.0.0" + checksum: bc457c4af9559e9e8f752e643fc9d116247f4e4246e69959d99b9e39196c93d7af53c1c8e3bd946bd0e4fc29f7ba27efe9bced8525ffa41fe45ef56a8281014b + languageName: node + linkType: hard + +"@octokit/oauth-methods@npm:^2.0.0": + version: 2.0.4 + resolution: "@octokit/oauth-methods@npm:2.0.4" + dependencies: + "@octokit/oauth-authorization-url": ^5.0.0 + "@octokit/request": ^6.0.0 + "@octokit/request-error": ^3.0.0 + "@octokit/types": ^8.0.0 + btoa-lite: ^1.0.0 + checksum: a9137841395d341e99e273cc2b2ed241999099a0f769fb36f811feb2980dc2c8ff32d45b1b68abf0066a744c49826b749e8f2e2dc45045583c1e604cebb36e62 + languageName: node + linkType: hard + +"@octokit/openapi-types@npm:^12.11.0": + version: 12.11.0 + resolution: "@octokit/openapi-types@npm:12.11.0" + checksum: 8a7d4bd6288cc4085cabe0ca9af2b87c875c303af932cb138aa1b2290eb69d32407759ac23707bb02776466e671244a902e9857896903443a69aff4b6b2b0e3b + languageName: node + linkType: hard + +"@octokit/openapi-types@npm:^14.0.0": + version: 14.0.0 + resolution: "@octokit/openapi-types@npm:14.0.0" + checksum: 0a1f8f3be998cd82c5a640e9166d43fd183b33d5d36f5e1a9b81608e94d0da87c01ec46c9988f69cd26585d4e2ffc4d3ec99ee4f75e5fe997fc86dad0aa8293c + languageName: node + linkType: hard + +"@octokit/plugin-paginate-rest@npm:^5.0.0": + version: 5.0.1 + resolution: "@octokit/plugin-paginate-rest@npm:5.0.1" + dependencies: + "@octokit/types": ^8.0.0 + peerDependencies: + "@octokit/core": ">=4" + checksum: cfded297d9f66c7607bd34075eb0c5f7278a1617d6be86115997c0757151c9be2fcf7a8849c2a5cebab56931a263b5cc35742b6227935afe77f5ed61b0627a3d + languageName: node + linkType: hard + +"@octokit/plugin-rest-endpoint-methods@npm:^6.0.0": + version: 6.7.0 + resolution: "@octokit/plugin-rest-endpoint-methods@npm:6.7.0" + dependencies: + "@octokit/types": ^8.0.0 + deprecation: ^2.3.1 + peerDependencies: + "@octokit/core": ">=3" + checksum: 513c6c0717d08f3e85848029bd700412b7d9787750f78cc79a3dede356e94b238bf8a518b108f556a7efe626871720dd0466de9f31091578ea4e0f5a016f0ae7 + languageName: node + linkType: hard + +"@octokit/plugin-retry@npm:^3.0.9": + version: 3.0.9 + resolution: "@octokit/plugin-retry@npm:3.0.9" + dependencies: + "@octokit/types": ^6.0.3 + bottleneck: ^2.15.3 + checksum: 5744780d308dd2f2b8174264604a9f8ea977374256f5eaf0314e5181c32f96ec53a3cfcee67bf1b48dc7eed401ebefebd2fa744b41cf03103affac92f397a874 + languageName: node + linkType: hard + +"@octokit/plugin-throttling@npm:^4.0.1": + version: 4.3.1 + resolution: "@octokit/plugin-throttling@npm:4.3.1" + dependencies: + "@octokit/types": ^8.0.0 + bottleneck: ^2.15.3 + peerDependencies: + "@octokit/core": ^4.0.0 + checksum: 95e12a18885114ddee9942a1ef8718f2fd0aed5c94f772e06a295410f1a0cdd0c3f3e32d6cad95e7298ec7bfa88850ab9453ad2ad716000a9918d3f045c18495 + languageName: node + linkType: hard + +"@octokit/request-error@npm:^3.0.0": + version: 3.0.2 + resolution: "@octokit/request-error@npm:3.0.2" + dependencies: + "@octokit/types": ^8.0.0 + deprecation: ^2.0.0 + once: ^1.4.0 + checksum: 41549554ce780de13d3421f8036635014c8dcbdf867c288526ef7b17e9d92470f33341ddadacf2868dc0181440842803484104efbe11ebfaecdaeec58871a13e + languageName: node + linkType: hard + +"@octokit/request@npm:^6.0.0": + version: 6.2.2 + resolution: "@octokit/request@npm:6.2.2" + dependencies: + "@octokit/endpoint": ^7.0.0 + "@octokit/request-error": ^3.0.0 + "@octokit/types": ^8.0.0 + is-plain-object: ^5.0.0 + node-fetch: ^2.6.7 + universal-user-agent: ^6.0.0 + checksum: adbeb38807c60b53d32d9b69be0c1f861c26698bc6f5f3f7e05d26972290dc4867827dd333bdd801818c347e5723efd049a2b9848c6c8bf74a2032968dede0ff + languageName: node + linkType: hard + +"@octokit/types@npm:^6.0.3": + version: 6.41.0 + resolution: "@octokit/types@npm:6.41.0" + dependencies: + "@octokit/openapi-types": ^12.11.0 + checksum: fd6f75e0b19b90d1a3d244d2b0c323ed8f2f05e474a281f60a321986683548ef2e0ec2b3a946aa9405d6092e055344455f69f58957c60f58368c8bdda5b7d2ab + languageName: node + linkType: hard + +"@octokit/types@npm:^8.0.0": + version: 8.0.0 + resolution: "@octokit/types@npm:8.0.0" + dependencies: + "@octokit/openapi-types": ^14.0.0 + checksum: 1a0197b2c4c522ac90f145e02b3f8cb048a47f71c2c6bdbf021a03db7dd30ca92a899c0186acb401337f218efe44e60d33cc1cc68715b622bb75bc1a4e79515d + languageName: node + linkType: hard + +"@octokit/webhooks-methods@npm:^3.0.0": + version: 3.0.1 + resolution: "@octokit/webhooks-methods@npm:3.0.1" + checksum: a65344315175459fcc43d1e8ea20f73aa73f0c47a692e0b02d45dfb8fda7075cf5503ff33654a9b6683d32d7e5737965f1ff40618d21a7c637180ae73bf888a4 + languageName: node + linkType: hard + +"@octokit/webhooks-types@npm:6.5.0": + version: 6.5.0 + resolution: "@octokit/webhooks-types@npm:6.5.0" + checksum: 747e4d277061ddced1b215d9fb3c3fb279e41069d90e703b4f9df6feb723769ba899c107f62aaa2db4cc7ac988de807e4455ab3b6049d8b853164e64c723a680 + languageName: node + linkType: hard + +"@octokit/webhooks@npm:^10.0.0": + version: 10.3.0 + resolution: "@octokit/webhooks@npm:10.3.0" + dependencies: + "@octokit/request-error": ^3.0.0 + "@octokit/webhooks-methods": ^3.0.0 + "@octokit/webhooks-types": 6.5.0 + aggregate-error: ^3.1.0 + checksum: 23c61cc139f1db145f74deab637efcb47f213b45ce85f107b9b9a80d96c9a566e5f763dfc9f3d75594e31ca3408c1b5ced48e735bb367886948135f3bb490210 + languageName: node + linkType: hard + "@tootallnate/once@npm:2": version: 2.0.0 resolution: "@tootallnate/once@npm:2.0.0" @@ -480,6 +775,20 @@ __metadata: languageName: node linkType: hard +"@types/aws-lambda@npm:^8.10.83": + version: 8.10.107 + resolution: "@types/aws-lambda@npm:8.10.107" + checksum: b4a1a666f9ceb6bee1179ed85678aa81af8314eb2026181c6c96d453cc01123585e66e468f4f9d84fbe4302f6ed1d95ee1397f90caf0ed3d5e9860867131f26e + languageName: node + linkType: hard + +"@types/btoa-lite@npm:^1.0.0": + version: 1.0.0 + resolution: "@types/btoa-lite@npm:1.0.0" + checksum: 4d0c3c36cc8aa5669d286d62ca45d925e3ea0db75222ebacb0d9f4fd7822b8e162da8773887e045c11d64c42373807d2ab2ad97a5d8a683d2e1c981e6a05ce33 + languageName: node + linkType: hard + "@types/chrome@npm:^0.0.197": version: 0.0.197 resolution: "@types/chrome@npm:0.0.197" @@ -520,6 +829,22 @@ __metadata: languageName: node linkType: hard +"@types/jsonwebtoken@npm:^8.3.3": + version: 8.5.9 + resolution: "@types/jsonwebtoken@npm:8.5.9" + dependencies: + "@types/node": "*" + checksum: 33815ab02d1371b423118316b7706d2f2ec03eeee5e1494be72da50425d2384e5e0a09ea193f7a5ab4b4f6a9c5847147305f50e965f3d927a95bdf8adb471b2a + languageName: node + linkType: hard + +"@types/lru-cache@npm:^5.1.0": + version: 5.1.1 + resolution: "@types/lru-cache@npm:5.1.1" + checksum: e1d6c0085f61b16ec5b3073ec76ad1be4844ea036561c3f145fc19f71f084b58a6eb600b14128aa95809d057d28f1d147c910186ae51219f58366ffd2ff2e118 + languageName: node + linkType: hard + "@types/minimist@npm:^1.2.0": version: 1.2.2 resolution: "@types/minimist@npm:1.2.2" @@ -823,7 +1148,7 @@ __metadata: languageName: node linkType: hard -"aggregate-error@npm:^3.0.0": +"aggregate-error@npm:^3.0.0, aggregate-error@npm:^3.1.0": version: 3.1.0 resolution: "aggregate-error@npm:3.1.0" dependencies: @@ -958,6 +1283,7 @@ __metadata: node-fetch: ^2.6.7 nodemailer: ^6.8.0 nodemon: ^2.0.20 + octokit: ^2.0.9 rimraf: ^3.0.2 ts-node: ^10.9.1 tsconfig-paths: ^4.1.0 @@ -1084,6 +1410,13 @@ __metadata: languageName: node linkType: hard +"before-after-hook@npm:^2.2.0": + version: 2.2.3 + resolution: "before-after-hook@npm:2.2.3" + checksum: a1a2430976d9bdab4cd89cb50d27fa86b19e2b41812bf1315923b0cba03371ebca99449809226425dd3bcef20e010db61abdaff549278e111d6480034bebae87 + languageName: node + linkType: hard + "binary-extensions@npm:^2.0.0": version: 2.2.0 resolution: "binary-extensions@npm:2.2.0" @@ -1091,6 +1424,13 @@ __metadata: languageName: node linkType: hard +"bottleneck@npm:^2.15.3": + version: 2.19.5 + resolution: "bottleneck@npm:2.19.5" + checksum: c5eef1bbea12cef1f1405e7306e7d24860568b0f7ac5eeab706a86762b3fc65ef6d1c641c8a166e4db90f412fc5c948fc5ce8008a8cd3d28c7212ef9c3482bda + languageName: node + linkType: hard + "boxen@npm:7.0.0": version: 7.0.0 resolution: "boxen@npm:7.0.0" @@ -1148,6 +1488,20 @@ __metadata: languageName: unknown linkType: soft +"btoa-lite@npm:^1.0.0": + version: 1.0.0 + resolution: "btoa-lite@npm:1.0.0" + checksum: c2d61993b801f8e35a96f20692a45459c753d9baa29d86d1343e714f8d6bbe7069f1a20a5ae868488f3fb137d5bd0c560f6fbbc90b5a71050919d2d2c97c0475 + languageName: node + linkType: hard + +"buffer-equal-constant-time@npm:1.0.1": + version: 1.0.1 + resolution: "buffer-equal-constant-time@npm:1.0.1" + checksum: 80bb945f5d782a56f374b292770901065bad21420e34936ecbe949e57724b4a13874f735850dd1cc61f078773c4fb5493a41391e7bda40d1fa388d6bd80daaab + languageName: node + linkType: hard + "buffer-from@npm:^1.0.0": version: 1.1.2 resolution: "buffer-from@npm:1.1.2" @@ -1739,6 +2093,13 @@ __metadata: languageName: node linkType: hard +"deprecation@npm:^2.0.0, deprecation@npm:^2.3.1": + version: 2.3.1 + resolution: "deprecation@npm:2.3.1" + checksum: f56a05e182c2c195071385455956b0c4106fe14e36245b00c689ceef8e8ab639235176a96977ba7c74afb173317fac2e0ec6ec7a1c6d1e6eaa401c586c714132 + languageName: node + linkType: hard + "detective@npm:^5.2.1": version: 5.2.1 resolution: "detective@npm:5.2.1" @@ -1824,6 +2185,15 @@ __metadata: languageName: node linkType: hard +"ecdsa-sig-formatter@npm:1.0.11": + version: 1.0.11 + resolution: "ecdsa-sig-formatter@npm:1.0.11" + dependencies: + safe-buffer: ^5.0.1 + checksum: 207f9ab1c2669b8e65540bce29506134613dd5f122cccf1e6a560f4d63f2732d427d938f8481df175505aad94583bcb32c688737bb39a6df0625f903d6d93c03 + languageName: node + linkType: hard + "emoji-regex@npm:^8.0.0": version: 8.0.0 resolution: "emoji-regex@npm:8.0.0" @@ -2341,6 +2711,13 @@ __metadata: languageName: node linkType: hard +"fromentries@npm:^1.3.1": + version: 1.3.2 + resolution: "fromentries@npm:1.3.2" + checksum: 33729c529ce19f5494f846f0dd4945078f4e37f4e8955f4ae8cc7385c218f600e9d93a7d225d17636c20d1889106fd87061f911550861b7072f53bf891e6b341 + languageName: node + linkType: hard + "fs-extra@npm:^10.0.0": version: 10.1.0 resolution: "fs-extra@npm:10.1.0" @@ -2851,6 +3228,13 @@ __metadata: languageName: node linkType: hard +"is-plain-object@npm:^5.0.0": + version: 5.0.0 + resolution: "is-plain-object@npm:5.0.0" + checksum: e32d27061eef62c0847d303125440a38660517e586f2f3db7c9d179ae5b6674ab0f469d519b2e25c147a1a3bc87156d0d5f4d8821e0ce4a9ee7fe1fcf11ce45c + languageName: node + linkType: hard + "is-port-reachable@npm:4.0.0": version: 4.0.0 resolution: "is-port-reachable@npm:4.0.0" @@ -2986,6 +3370,45 @@ __metadata: languageName: node linkType: hard +"jsonwebtoken@npm:^8.5.1": + version: 8.5.1 + resolution: "jsonwebtoken@npm:8.5.1" + dependencies: + jws: ^3.2.2 + lodash.includes: ^4.3.0 + lodash.isboolean: ^3.0.3 + lodash.isinteger: ^4.0.4 + lodash.isnumber: ^3.0.3 + lodash.isplainobject: ^4.0.6 + lodash.isstring: ^4.0.1 + lodash.once: ^4.0.0 + ms: ^2.1.1 + semver: ^5.6.0 + checksum: 93c9e3f23c59b758ac88ba15f4e4753b3749dfce7a6f7c40fb86663128a1e282db085eec852d4e0cbca4cefdcd3a8275ee255dbd08fcad0df26ad9f6e4cc853a + languageName: node + linkType: hard + +"jwa@npm:^1.4.1": + version: 1.4.1 + resolution: "jwa@npm:1.4.1" + dependencies: + buffer-equal-constant-time: 1.0.1 + ecdsa-sig-formatter: 1.0.11 + safe-buffer: ^5.0.1 + checksum: ff30ea7c2dcc61f3ed2098d868bf89d43701605090c5b21b5544b512843ec6fd9e028381a4dda466cbcdb885c2d1150f7c62e7168394ee07941b4098e1035e2f + languageName: node + linkType: hard + +"jws@npm:^3.2.2": + version: 3.2.2 + resolution: "jws@npm:3.2.2" + dependencies: + jwa: ^1.4.1 + safe-buffer: ^5.0.1 + checksum: f0213fe5b79344c56cd443428d8f65c16bf842dc8cb8f5aed693e1e91d79c20741663ad6eff07a6d2c433d1831acc9814e8d7bada6a0471fbb91d09ceb2bf5c2 + languageName: node + linkType: hard + "kind-of@npm:^6.0.3": version: 6.0.3 resolution: "kind-of@npm:6.0.3" @@ -3106,6 +3529,48 @@ __metadata: languageName: node linkType: hard +"lodash.includes@npm:^4.3.0": + version: 4.3.0 + resolution: "lodash.includes@npm:4.3.0" + checksum: 71092c130515a67ab3bd928f57f6018434797c94def7f46aafa417771e455ce3a4834889f4267b17887d7f75297dfabd96231bf704fd2b8c5096dc4a913568b6 + languageName: node + linkType: hard + +"lodash.isboolean@npm:^3.0.3": + version: 3.0.3 + resolution: "lodash.isboolean@npm:3.0.3" + checksum: b70068b4a8b8837912b54052557b21fc4774174e3512ed3c5b94621e5aff5eb6c68089d0a386b7e801d679cd105d2e35417978a5e99071750aa2ed90bffd0250 + languageName: node + linkType: hard + +"lodash.isinteger@npm:^4.0.4": + version: 4.0.4 + resolution: "lodash.isinteger@npm:4.0.4" + checksum: 6034821b3fc61a2ffc34e7d5644bb50c5fd8f1c0121c554c21ac271911ee0c0502274852845005f8651d51e199ee2e0cfebfe40aaa49c7fe617f603a8a0b1691 + languageName: node + linkType: hard + +"lodash.isnumber@npm:^3.0.3": + version: 3.0.3 + resolution: "lodash.isnumber@npm:3.0.3" + checksum: 913784275b565346255e6ae6a6e30b760a0da70abc29f3e1f409081585875105138cda4a429ff02577e1bc0a7ae2a90e0a3079a37f3a04c3d6c5aaa532f4cab2 + languageName: node + linkType: hard + +"lodash.isplainobject@npm:^4.0.6": + version: 4.0.6 + resolution: "lodash.isplainobject@npm:4.0.6" + checksum: 29c6351f281e0d9a1d58f1a4c8f4400924b4c79f18dfc4613624d7d54784df07efaff97c1ff2659f3e085ecf4fff493300adc4837553104cef2634110b0d5337 + languageName: node + linkType: hard + +"lodash.isstring@npm:^4.0.1": + version: 4.0.1 + resolution: "lodash.isstring@npm:4.0.1" + checksum: eaac87ae9636848af08021083d796e2eea3d02e80082ab8a9955309569cb3a463ce97fd281d7dc119e402b2e7d8c54a23914b15d2fc7fff56461511dc8937ba0 + languageName: node + linkType: hard + "lodash.merge@npm:^4.6.2": version: 4.6.2 resolution: "lodash.merge@npm:4.6.2" @@ -3113,6 +3578,13 @@ __metadata: languageName: node linkType: hard +"lodash.once@npm:^4.0.0": + version: 4.1.1 + resolution: "lodash.once@npm:4.1.1" + checksum: d768fa9f9b4e1dc6453be99b753906f58990e0c45e7b2ca5a3b40a33111e5d17f6edf2f768786e2716af90a8e78f8f91431ab8435f761fef00f9b0c256f6d245 + languageName: node + linkType: hard + "lodash@npm:^4.17.15, lodash@npm:^4.17.19": version: 4.17.21 resolution: "lodash@npm:4.17.21" @@ -3670,6 +4142,22 @@ __metadata: languageName: node linkType: hard +"octokit@npm:^2.0.9": + version: 2.0.9 + resolution: "octokit@npm:2.0.9" + dependencies: + "@octokit/app": ^13.0.5 + "@octokit/core": ^4.0.4 + "@octokit/oauth-app": ^4.0.6 + "@octokit/plugin-paginate-rest": ^5.0.0 + "@octokit/plugin-rest-endpoint-methods": ^6.0.0 + "@octokit/plugin-retry": ^3.0.9 + "@octokit/plugin-throttling": ^4.0.1 + "@octokit/types": ^8.0.0 + checksum: 5d4c64692288af530ed8983619c265785b4783dab6b456e00472bd95eddfa367b74a2a4a2cd30df8f51cfcbe0ebb79fe14a2534d93d32b6edf50b0c1404657f2 + languageName: node + linkType: hard + "on-exit-leak-free@npm:^2.1.0": version: 2.1.0 resolution: "on-exit-leak-free@npm:2.1.0" @@ -3684,7 +4172,7 @@ __metadata: languageName: node linkType: hard -"once@npm:^1.3.0": +"once@npm:^1.3.0, once@npm:^1.4.0": version: 1.4.0 resolution: "once@npm:1.4.0" dependencies: @@ -4489,7 +4977,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.7.1": +"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.6.0, semver@npm:^5.7.1": version: 5.7.1 resolution: "semver@npm:5.7.1" bin: @@ -5233,6 +5721,23 @@ __metadata: languageName: node linkType: hard +"universal-github-app-jwt@npm:^1.0.1": + version: 1.1.0 + resolution: "universal-github-app-jwt@npm:1.1.0" + dependencies: + "@types/jsonwebtoken": ^8.3.3 + jsonwebtoken: ^8.5.1 + checksum: b6ebbe2533881639701e936ca54c9ec02aae1e9b36bf2495ed66632d5057e06a7d4a118ac38a3d96f63993e19a47ee6e282858e1f4a9c2ceede19a856ca08fcc + languageName: node + linkType: hard + +"universal-user-agent@npm:^6.0.0": + version: 6.0.0 + resolution: "universal-user-agent@npm:6.0.0" + checksum: 5092bbc80dd0d583cef0b62c17df0043193b74f425112ea6c1f69bc5eda21eeec7a08d8c4f793a277eb2202ffe9b44bec852fa3faff971234cd209874d1b79ef + languageName: node + linkType: hard + "universalify@npm:^2.0.0": version: 2.0.0 resolution: "universalify@npm:2.0.0"