From c7691e320096b99e3e879553d31e8036b5d11036 Mon Sep 17 00:00:00 2001 From: Rohit Gohri Date: Sun, 3 May 2020 23:00:51 +0530 Subject: [PATCH 01/12] chore: run validate script only when run directly --- scripts/data-validate.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/data-validate.js b/scripts/data-validate.js index 01f4ff15..de719696 100644 --- a/scripts/data-validate.js +++ b/scripts/data-validate.js @@ -40,4 +40,6 @@ async function main() { await communicateValidationOutcome(errors, failedUrls, data); } -main(); +if (require.main === module) { + main(); +} From 9426b956e6321e9cea4473ed6350c10dbd8c57f0 Mon Sep 17 00:00:00 2001 From: Rohit Gohri Date: Sun, 3 May 2020 23:14:56 +0530 Subject: [PATCH 02/12] ci: add danger-js and add validation dangerfile --- dangerfile.js | 31 ++ package-lock.json | 641 ++++++++++++++++++++++++++++++++++++++- package.json | 1 + scripts/data-validate.js | 8 + 4 files changed, 679 insertions(+), 2 deletions(-) create mode 100644 dangerfile.js diff --git a/dangerfile.js b/dangerfile.js new file mode 100644 index 00000000..5357e2f0 --- /dev/null +++ b/dangerfile.js @@ -0,0 +1,31 @@ +/* eslint-disable import/no-extraneous-dependencies */ +const { fail, markdown, schedule } = require('danger'); +const validate = require('./scripts/data-validate'); + +async function main() { + let comment = ''; + const { data: changedData, errors, failedUrls } = await validate(); + + // If there are errors, will fail the action & add a comment detailing the issues + // If there are no errors, will leave an "all-clear" comment with relevant URLs (to ease a potential manual check) + if (errors.length || failedUrls.length) { + fail('Action failed with errors, see logs & comment'); + + comment += [ + '🚨 We have detected the following issues, let us (contributors) know if you need support or clarifications:', + ...errors.map(e => `- ${e.message}`), + ...failedUrls.map(url => `- URL is invalid: ${url}`), + ].join('\n'); + } else if (changedData.length) { + comment += [ + '✅ Automatic validation checks succeeded for:', + // Comment with the URLs of users that have changed + // for easy access, way easier than taking a screenshot + ...changedData.map(({ name, url }) => `- ${name}, ${url}`), + ].join('\n'); + } + + if (comment) markdown(comment); +} + +schedule(main); diff --git a/package-lock.json b/package-lock.json index a83e49f7..443c3e53 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1802,6 +1802,15 @@ "fastq": "^1.6.0" } }, + "@octokit/auth-token": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.0.tgz", + "integrity": "sha512-eoOVMjILna7FVQf96iWc3+ZtE/ZT6y8ob8ZzcqKY1ibSQCnu4O/B7pJvzMx5cyZ/RjAff6DAdEb0O0Cjcxidkg==", + "dev": true, + "requires": { + "@octokit/types": "^2.0.0" + } + }, "@octokit/endpoint": { "version": "5.5.1", "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-5.5.1.tgz", @@ -1837,6 +1846,31 @@ "universal-user-agent": "^4.0.0" } }, + "@octokit/plugin-paginate-rest": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-1.1.2.tgz", + "integrity": "sha512-jbsSoi5Q1pj63sC16XIUboklNw+8tL9VOnJsWycWYR78TKss5PVpIPb1TUUcMQ+bBh7cY579cVAWmf5qG+dw+Q==", + "dev": true, + "requires": { + "@octokit/types": "^2.0.1" + } + }, + "@octokit/plugin-request-log": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.0.tgz", + "integrity": "sha512-ywoxP68aOT3zHCLgWZgwUJatiENeHE7xJzYjfz8WI0goynp96wETBF+d95b8g/uL4QmS6owPVlaxiz3wyMAzcw==", + "dev": true + }, + "@octokit/plugin-rest-endpoint-methods": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-2.4.0.tgz", + "integrity": "sha512-EZi/AWhtkdfAYi01obpX0DF7U6b1VRr30QNQ5xSFPITMdLSfhcBqjamE3F+sKcxPbD7eZuMHu3Qkk2V+JGxBDQ==", + "dev": true, + "requires": { + "@octokit/types": "^2.0.1", + "deprecation": "^2.3.1" + } + }, "@octokit/request": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.3.1.tgz", @@ -2302,6 +2336,15 @@ "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dev": true, + "requires": { + "event-target-shim": "^5.0.0" + } + }, "abstract-leveldown": { "version": "6.2.2", "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.2.tgz", @@ -2343,6 +2386,26 @@ "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" }, + "agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + }, + "dependencies": { + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "dev": true, + "requires": { + "es6-promise": "^4.0.3" + } + } + } + }, "aggregate-error": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", @@ -2685,6 +2748,15 @@ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" }, + "async-retry": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.2.3.tgz", + "integrity": "sha512-tfDb02Th6CE6pJUF2gjW5ZVjsgwlucVXOEQMvEX9JgSJMs9gAX+Nz3xRuJBKuUYjTSYORqvDBORdAQ3LU59g7Q==", + "dev": true, + "requires": { + "retry": "0.12.0" + } + }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -3771,6 +3843,12 @@ "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=" }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=", + "dev": true + }, "buffer-fill": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", @@ -4476,8 +4554,7 @@ "colors": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "optional": true + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" }, "combined-stream": { "version": "1.0.8", @@ -5223,6 +5300,97 @@ "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.5.tgz", "integrity": "sha512-CBCRqFnpu715iPmw1KrdOrzRqbdFwQTwAWyyyYS42+iAgHCuXZ+/TdMgQkUENPomxEz9z1BEzuQU2Xw0kUuAgA==" }, + "danger": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/danger/-/danger-10.1.1.tgz", + "integrity": "sha512-kRJW7TrVYe3nzTILRahXuEvG/+EZwyHrDXTTHA6nkd+4Ga+F4A4AFNkT7d0hEi7OlhhVx8W9BkxNcSO1xEJrAA==", + "dev": true, + "requires": { + "@babel/polyfill": "^7.2.5", + "@octokit/rest": "^16.43.1", + "async-retry": "1.2.3", + "chalk": "^2.3.0", + "commander": "^2.18.0", + "debug": "^4.1.1", + "fast-json-patch": "^3.0.0-1", + "get-stdin": "^6.0.0", + "gitlab": "^10.0.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1", + "hyperlinker": "^1.0.0", + "json5": "^2.1.0", + "jsonpointer": "^4.0.1", + "jsonwebtoken": "^8.4.0", + "lodash.find": "^4.6.0", + "lodash.includes": "^4.3.0", + "lodash.isobject": "^3.0.2", + "lodash.keys": "^4.0.8", + "lodash.mapvalues": "^4.6.0", + "lodash.memoize": "^4.1.2", + "memfs-or-file-map-to-github-branch": "^1.1.0", + "micromatch": "^3.1.10", + "node-cleanup": "^2.1.2", + "node-fetch": "^2.3.0", + "override-require": "^1.1.1", + "p-limit": "^2.1.0", + "parse-diff": "^0.7.0", + "parse-git-config": "^2.0.3", + "parse-github-url": "^1.0.2", + "parse-link-header": "^1.0.1", + "pinpoint": "^1.1.0", + "prettyjson": "^1.2.1", + "readline-sync": "^1.4.9", + "require-from-string": "^2.0.2", + "supports-hyperlinks": "^1.0.1" + }, + "dependencies": { + "@octokit/rest": { + "version": "16.43.1", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.43.1.tgz", + "integrity": "sha512-gfFKwRT/wFxq5qlNjnW2dh+qh74XgTQ2B179UX5K1HYCluioWj8Ndbgqw2PVqa1NnVJkGHp2ovMpVn/DImlmkw==", + "dev": true, + "requires": { + "@octokit/auth-token": "^2.4.0", + "@octokit/plugin-paginate-rest": "^1.1.1", + "@octokit/plugin-request-log": "^1.0.0", + "@octokit/plugin-rest-endpoint-methods": "2.4.0", + "@octokit/request": "^5.2.0", + "@octokit/request-error": "^1.0.2", + "atob-lite": "^2.0.0", + "before-after-hook": "^2.0.0", + "btoa-lite": "^1.0.0", + "deprecation": "^2.0.0", + "lodash.get": "^4.4.2", + "lodash.set": "^4.3.2", + "lodash.uniq": "^4.5.0", + "octokit-pagination-methods": "^1.1.0", + "once": "^1.4.0", + "universal-user-agent": "^4.0.0" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "get-stdin": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", + "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", + "dev": true + }, + "node-fetch": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", + "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==", + "dev": true + } + } + }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -5966,6 +6134,15 @@ "safer-buffer": "^2.1.0" } }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -6208,6 +6385,12 @@ "is-symbol": "^1.0.2" } }, + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "dev": true + }, "es6-promisify": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-6.0.2.tgz", @@ -6789,6 +6972,12 @@ "resolved": "https://registry.npmjs.org/event-source-polyfill/-/event-source-polyfill-1.0.11.tgz", "integrity": "sha512-fbo96OutP0Bb+gIYTTy8LGhNWySdetsFElCn/vhOzQL3cXWsS70TP/aRUe32U7F+PuOZH/tvb40tZgoJV8/Ilw==" }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "dev": true + }, "eventemitter3": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz", @@ -7329,6 +7518,12 @@ } } }, + "fast-json-patch": { + "version": "3.0.0-1", + "resolved": "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-3.0.0-1.tgz", + "integrity": "sha512-6pdFb07cknxvPzCeLsFHStEy+MysPJPgZQ9LbQ/2O67unQF93SNqfdSqnPPl71YMHX+AD8gbl7iuoGFzHEdDuw==", + "dev": true + }, "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -7648,6 +7843,12 @@ "resolved": "https://registry.npmjs.org/fs-exists-cached/-/fs-exists-cached-1.0.0.tgz", "integrity": "sha1-zyVVTKBQ3EmuZla0HeQiWJidy84=" }, + "fs-exists-sync": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz", + "integrity": "sha1-mC1ok6+RjnLQjeyehnP/K1qNat0=", + "dev": true + }, "fs-extra": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", @@ -9198,6 +9399,28 @@ "assert-plus": "^1.0.0" } }, + "git-config-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/git-config-path/-/git-config-path-1.0.1.tgz", + "integrity": "sha1-bTP37WPbDQ4RgTFQO6s6ykfVRmQ=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "fs-exists-sync": "^0.1.0", + "homedir-polyfill": "^1.0.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, "git-up": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/git-up/-/git-up-4.0.1.tgz", @@ -9212,6 +9435,51 @@ "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" }, + "gitlab": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/gitlab/-/gitlab-10.2.1.tgz", + "integrity": "sha512-z+DxRF1C9uayVbocs9aJkJz+kGy14TSm1noB/rAIEBbXOkOYbjKxyuqJzt+0zeFpXFdgA0yq6DVVbvM7HIfGwg==", + "dev": true, + "requires": { + "form-data": "^2.5.0", + "humps": "^2.0.1", + "ky": "^0.12.0", + "ky-universal": "^0.3.0", + "li": "^1.3.0", + "query-string": "^6.8.2", + "universal-url": "^2.0.0" + }, + "dependencies": { + "form-data": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", + "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "query-string": { + "version": "6.12.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.12.1.tgz", + "integrity": "sha512-OHj+zzfRMyj3rmo/6G8a5Ifvw3AleL/EbcHMD27YA31Q+cO5lfmQxECkImuNVjcskLcvBRVHNAB3w6udMs1eAA==", + "dev": true, + "requires": { + "decode-uri-component": "^0.2.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" + } + }, + "strict-uri-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", + "integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY=", + "dev": true + } + } + }, "glob": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", @@ -9632,6 +9900,12 @@ "minimalistic-assert": "^1.0.1" } }, + "hasurl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hasurl/-/hasurl-1.0.0.tgz", + "integrity": "sha512-43ypUd3DbwyCT01UYpA99AEZxZ4aKtRxWGBHEIbjcOsUghd9YUON0C+JF6isNjaiwC/UF5neaUudy6JS9jZPZQ==", + "dev": true + }, "hex-color-regex": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", @@ -9773,6 +10047,33 @@ "requires-port": "^1.0.0" } }, + "http-proxy-agent": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", + "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "dev": true, + "requires": { + "agent-base": "4", + "debug": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, "http-proxy-middleware": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", @@ -9799,11 +10100,27 @@ "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" }, + "https-proxy-agent": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "dev": true, + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + } + }, "human-signals": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==" }, + "humps": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/humps/-/humps-2.0.1.tgz", + "integrity": "sha1-3QLqYIG9BWjcXQcxhEY5V7qe+ao=", + "dev": true + }, "husky": { "version": "4.0.10", "resolved": "https://registry.npmjs.org/husky/-/husky-4.0.10.tgz", @@ -9915,6 +10232,12 @@ } } }, + "hyperlinker": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hyperlinker/-/hyperlinker-1.0.0.tgz", + "integrity": "sha512-Ty8UblRWFEcfSuIaajM34LdPXIhbs1ajEX/BBPv24J+enSVaEVY63xQ6lTO9VRYS5LAoghIG0IDJ+p+IPzKUQQ==", + "dev": true + }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -11173,6 +11496,30 @@ "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" }, + "jsonpointer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", + "dev": true + }, + "jsonwebtoken": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", + "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", + "dev": true, + "requires": { + "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" + } + }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", @@ -11193,6 +11540,27 @@ "object.assign": "^4.1.0" } }, + "jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "dev": true, + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "dev": true, + "requires": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, "keyv": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", @@ -11216,6 +11584,30 @@ "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" }, + "ky": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/ky/-/ky-0.12.0.tgz", + "integrity": "sha512-t9b7v3V2fGwAcQnnDDQwKQGF55eWrf4pwi1RN08Fy8b/9GEwV7Ea0xQiaSW6ZbeghBHIwl8kgnla4vVo9seepQ==", + "dev": true + }, + "ky-universal": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/ky-universal/-/ky-universal-0.3.0.tgz", + "integrity": "sha512-CM4Bgb2zZZpsprcjI6DNYTaH3oGHXL2u7BU4DK+lfCuC4snkt9/WRpMYeKbBbXscvKkeqBwzzjFX2WwmKY5K/A==", + "dev": true, + "requires": { + "abort-controller": "^3.0.0", + "node-fetch": "^2.6.0" + }, + "dependencies": { + "node-fetch": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", + "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==", + "dev": true + } + } + }, "last-call-webpack-plugin": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz", @@ -11349,6 +11741,12 @@ "type-check": "~0.3.2" } }, + "li": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/li/-/li-1.3.0.tgz", + "integrity": "sha1-IsWbyu+qmo7zWc91l4TkvxBq6hs=", + "dev": true + }, "lines-and-columns": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", @@ -11999,6 +12397,12 @@ "resolved": "https://registry.npmjs.org/lodash.every/-/lodash.every-4.6.0.tgz", "integrity": "sha1-64mYS+vENkJ5uzrvu9HKGb+mxqc=" }, + "lodash.find": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.find/-/lodash.find-4.6.0.tgz", + "integrity": "sha1-ywcE1Hq3F4n/oN6Ll92Sb7iLE7E=", + "dev": true + }, "lodash.flattendeep": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", @@ -12014,11 +12418,65 @@ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" }, + "lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=", + "dev": true + }, + "lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=", + "dev": true + }, + "lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=", + "dev": true + }, + "lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=", + "dev": true + }, + "lodash.isobject": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz", + "integrity": "sha1-PI+41bW/S/kK4G4U8qUwpO2TXh0=", + "dev": true + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", + "dev": true + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=", + "dev": true + }, + "lodash.keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-4.2.0.tgz", + "integrity": "sha1-oIYCrBLk+4P5H8H7ejYKTZujUgU=", + "dev": true + }, "lodash.map": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=" }, + "lodash.mapvalues": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz", + "integrity": "sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw=", + "dev": true + }, "lodash.maxby": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.maxby/-/lodash.maxby-4.6.0.tgz", @@ -12029,11 +12487,23 @@ "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=", + "dev": true + }, "lodash.set": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=" }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, "lodash.template": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", @@ -12354,6 +12824,41 @@ } } }, + "memfs-or-file-map-to-github-branch": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/memfs-or-file-map-to-github-branch/-/memfs-or-file-map-to-github-branch-1.2.0.tgz", + "integrity": "sha512-PloI9AkRXrLQuBU1s7eYQpl+4hkL0U0h23lddMaJ3ZGUufn8pdNRxd1kCfBqL5gISCFQs78ttXS15e4/f5vcTA==", + "dev": true, + "requires": { + "@octokit/rest": "^16.43.1" + }, + "dependencies": { + "@octokit/rest": { + "version": "16.43.1", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.43.1.tgz", + "integrity": "sha512-gfFKwRT/wFxq5qlNjnW2dh+qh74XgTQ2B179UX5K1HYCluioWj8Ndbgqw2PVqa1NnVJkGHp2ovMpVn/DImlmkw==", + "dev": true, + "requires": { + "@octokit/auth-token": "^2.4.0", + "@octokit/plugin-paginate-rest": "^1.1.1", + "@octokit/plugin-request-log": "^1.0.0", + "@octokit/plugin-rest-endpoint-methods": "2.4.0", + "@octokit/request": "^5.2.0", + "@octokit/request-error": "^1.0.2", + "atob-lite": "^2.0.0", + "before-after-hook": "^2.0.0", + "btoa-lite": "^1.0.0", + "deprecation": "^2.0.0", + "lodash.get": "^4.4.2", + "lodash.set": "^4.3.2", + "lodash.uniq": "^4.5.0", + "octokit-pagination-methods": "^1.1.0", + "once": "^1.4.0", + "universal-user-agent": "^4.0.0" + } + } + } + }, "memory-fs": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", @@ -12861,6 +13366,12 @@ "semver": "^5.4.1" } }, + "node-cleanup": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/node-cleanup/-/node-cleanup-2.1.2.tgz", + "integrity": "sha1-esGavSl+Caf3KnFUXZUbUX5N3iw=", + "dev": true + }, "node-emoji": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz", @@ -13402,6 +13913,12 @@ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, + "override-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/override-require/-/override-require-1.1.1.tgz", + "integrity": "sha1-auIvresfhQ/7DPTCD/e4fl62UN8=", + "dev": true + }, "p-cancelable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", @@ -13594,6 +14111,29 @@ "xml2js": "^0.4.5" } }, + "parse-diff": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/parse-diff/-/parse-diff-0.7.0.tgz", + "integrity": "sha512-88ar4IU2Fx+KgiyvVul0Y+YprMArTgLscO0nEKaEvWvhzRSSYefdf1M9PUmpx1pu5crUoVl2QNDMqjxfCeKptQ==", + "dev": true + }, + "parse-git-config": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/parse-git-config/-/parse-git-config-2.0.3.tgz", + "integrity": "sha512-Js7ueMZOVSZ3tP8C7E3KZiHv6QQl7lnJ+OkbxoaFazzSa2KyEHqApfGbU3XboUgUnq4ZuUmskUpYKTNx01fm5A==", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "git-config-path": "^1.0.1", + "ini": "^1.3.5" + } + }, + "parse-github-url": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-github-url/-/parse-github-url-1.0.2.tgz", + "integrity": "sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw==", + "dev": true + }, "parse-headers": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz", @@ -13610,6 +14150,15 @@ "lines-and-columns": "^1.1.6" } }, + "parse-link-header": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-link-header/-/parse-link-header-1.0.1.tgz", + "integrity": "sha1-vt/g0hGK64S+deewJUGeyKYRQKc=", + "dev": true, + "requires": { + "xtend": "~4.0.1" + } + }, "parse-passwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", @@ -13775,6 +14324,12 @@ "pinkie": "^2.0.0" } }, + "pinpoint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pinpoint/-/pinpoint-1.1.0.tgz", + "integrity": "sha1-DPd1eml38b9/ajIge3CeN3OI6HQ=", + "dev": true + }, "pixelmatch": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz", @@ -14669,6 +15224,16 @@ "utila": "~0.4" } }, + "prettyjson": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prettyjson/-/prettyjson-1.2.1.tgz", + "integrity": "sha1-/P+rQdGcq0365eV15kJGYZsS0ok=", + "dev": true, + "requires": { + "colors": "^1.1.2", + "minimist": "^1.2.0" + } + }, "private": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", @@ -15352,6 +15917,12 @@ "readable-stream": "^2.0.2" } }, + "readline-sync": { + "version": "1.4.10", + "resolved": "https://registry.npmjs.org/readline-sync/-/readline-sync-1.4.10.tgz", + "integrity": "sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw==", + "dev": true + }, "recursive-readdir": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.1.tgz", @@ -15581,6 +16152,12 @@ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", @@ -16645,6 +17222,12 @@ } } }, + "split-on-first": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", + "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", + "dev": true + }, "split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", @@ -17090,6 +17673,24 @@ "has-flag": "^3.0.0" } }, + "supports-hyperlinks": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-1.0.1.tgz", + "integrity": "sha512-HHi5kVSefKaJkGYXbDuKbUGRVxqnWGn3J2e39CYcNJEfWciGq2zYtOhXLTlvrOZW1QU7VX67w7fMmWafHX9Pfw==", + "dev": true, + "requires": { + "has-flag": "^2.0.0", + "supports-color": "^5.0.0" + }, + "dependencies": { + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + } + } + }, "svgo": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", @@ -17461,6 +18062,15 @@ } } }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, "tree-kill": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", @@ -17660,6 +18270,16 @@ "crypto-random-string": "^1.0.0" } }, + "universal-url": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universal-url/-/universal-url-2.0.0.tgz", + "integrity": "sha512-3DLtXdm/G1LQMCnPj+Aw7uDoleQttNHp2g5FnNQKR6cP6taNWS1b/Ehjjx4PVyvejKi3TJyu8iBraKM4q3JQPg==", + "dev": true, + "requires": { + "hasurl": "^1.0.0", + "whatwg-url": "^7.0.0" + } + }, "universal-user-agent": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-4.0.0.tgz", @@ -18123,6 +18743,12 @@ "resolved": "https://registry.npmjs.org/webfontloader/-/webfontloader-1.6.28.tgz", "integrity": "sha1-23hhKSU8tujq5UwvsF+HCvZnW64=" }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, "webpack": { "version": "4.41.5", "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.5.tgz", @@ -18550,6 +19176,17 @@ "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz", "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==" }, + "whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dev": true, + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", diff --git a/package.json b/package.json index f715fa8c..ed07e769 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "devDependencies": { "@architect/sandbox": "^1.6.0", "babel-eslint": "^9.0.0", + "danger": "^10.1.1", "eslint": "^5.16.0", "eslint-config-airbnb": "^17.1.1", "eslint-config-prettier": "^4.3.0", diff --git a/scripts/data-validate.js b/scripts/data-validate.js index de719696..ce588f91 100644 --- a/scripts/data-validate.js +++ b/scripts/data-validate.js @@ -38,8 +38,16 @@ async function main() { } await communicateValidationOutcome(errors, failedUrls, data); + + return { + failedUrls, + errors, + data, + }; } if (require.main === module) { main(); } + +module.exports = main; From 84e985bc94d1f379026c6da9417d672752e6cea2 Mon Sep 17 00:00:00 2001 From: Rohit Gohri Date: Sun, 3 May 2020 23:16:36 +0530 Subject: [PATCH 03/12] ci: add danger step to workflow --- .github/workflows/data-validate.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/data-validate.yml b/.github/workflows/data-validate.yml index 9b312fcd..03e0a601 100644 --- a/.github/workflows/data-validate.yml +++ b/.github/workflows/data-validate.yml @@ -29,3 +29,8 @@ jobs: run: node ./scripts/data-validate.js env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Validate data.js using DangerJS + run: npx danger ci + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From bc624f15172f86b2a1695d101b659bc98f4fe81b Mon Sep 17 00:00:00 2001 From: Rohit Gohri Date: Sun, 3 May 2020 23:20:30 +0530 Subject: [PATCH 04/12] add dummy entry to trigger workflow --- src/data.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/data.js b/src/data.js index a3d93ef0..5058e0bb 100644 --- a/src/data.js +++ b/src/data.js @@ -7692,6 +7692,17 @@ module.exports = [ 'GraphQL', ], }, + { + name: 'Rohit Gohri', + description: 'Dummy entry to trigger workflow', + url: 'https://rohit.page', + twitter: '@rohit-gohri', + emoji: '🌲', + country: '🇮🇳', + computer: 'linux', + phone: 'android', + tags: ['Developer'], + }, { name: 'Jeremy Bunting', description: 'Web 🤖 working remotely from the Connecticut burbs', From afced1a6b7c1f5d4b01b49205d599b0387ac4ef8 Mon Sep 17 00:00:00 2001 From: Rohit Gohri Date: Sun, 3 May 2020 23:23:30 +0530 Subject: [PATCH 05/12] ci: delete old data-validate step --- .github/workflows/data-validate.yml | 5 ---- scripts/data-validate.js | 13 +------- scripts/utils.js | 46 ----------------------------- 3 files changed, 1 insertion(+), 63 deletions(-) diff --git a/.github/workflows/data-validate.yml b/.github/workflows/data-validate.yml index 03e0a601..38d788bc 100644 --- a/.github/workflows/data-validate.yml +++ b/.github/workflows/data-validate.yml @@ -25,11 +25,6 @@ jobs: - name: Install Dependencies run: npm install - - name: Validate data.js - run: node ./scripts/data-validate.js - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: Validate data.js using DangerJS run: npx danger ci env: diff --git a/scripts/data-validate.js b/scripts/data-validate.js index ce588f91..b06d1732 100644 --- a/scripts/data-validate.js +++ b/scripts/data-validate.js @@ -1,10 +1,5 @@ const core = require('@actions/core'); -const { - getMasterData, - Schema, - getStatusCode, - communicateValidationOutcome, -} = require('./utils.js'); +const { getMasterData, Schema, getStatusCode } = require('./utils.js'); const srcData = require('../src/data.js'); async function main() { @@ -37,8 +32,6 @@ async function main() { } } - await communicateValidationOutcome(errors, failedUrls, data); - return { failedUrls, errors, @@ -46,8 +39,4 @@ async function main() { }; } -if (require.main === module) { - main(); -} - module.exports = main; diff --git a/scripts/utils.js b/scripts/utils.js index 0bbda125..fd5e7ea2 100644 --- a/scripts/utils.js +++ b/scripts/utils.js @@ -1,6 +1,5 @@ const exec = require('@actions/exec'); const core = require('@actions/core'); -const github = require('@actions/github'); const Joi = require('@hapi/joi'); const http = require('http'); const https = require('https'); @@ -85,48 +84,3 @@ module.exports.getStatusCode = function(url) { .on('error', err => reject(err)); }); }; - -// If there are errors, will fail the action & add a comment detailing the issues -// If there are no errors, will leave an "all-clear" comment with relevant URLs (to ease a potential manual check) -module.exports.communicateValidationOutcome = async function( - errors, - failedUrls, - changedData -) { - let comment = ''; - if (errors.length || failedUrls.length) { - core.setFailed('Action failed with errors, see logs & comment'); - - comment += [ - '🚨 We have detected the following issues, let us (contributors) know if you need support or clarifications:', - ...errors.map(e => `- ${e.message}`), - ...failedUrls.map(url => `- URL is invalid: ${url}`), - ].join('\n'); - } else { - comment += [ - '✅ Automatic validation checks succeeded for:', - // Comment with the URLs of users that have changed - // for easy access, way easier than taking a screenshot - ...changedData.map(({ name, url }) => `- ${name}, ${url}`), - ].join('\n'); - } - - const { GITHUB_TOKEN } = process.env; - const { context } = github; - if (!GITHUB_TOKEN || !context.payload.pull_request) { - core.error( - 'Cannot add a comment if GITHUB_TOKEN or context.payload.pull_request is not set' - ); - core.info(`Comment contents:\n${comment}`); - return; - } - - const pullRequestNumber = context.payload.pull_request.number; - - const octokit = new github.GitHub(GITHUB_TOKEN); - await octokit.issues.createComment({ - ...context.repo, - issue_number: pullRequestNumber, - body: comment, - }); -}; From 2f2ce100fd1fa39b376b24570fcc3d4552d6869e Mon Sep 17 00:00:00 2001 From: Rohit Gohri Date: Sun, 3 May 2020 23:25:24 +0530 Subject: [PATCH 06/12] ci: show all errors in comment/log --- scripts/data-validate.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/scripts/data-validate.js b/scripts/data-validate.js index b06d1732..c0cad8ff 100644 --- a/scripts/data-validate.js +++ b/scripts/data-validate.js @@ -9,7 +9,11 @@ async function main() { const data = srcData.filter(d => !masterDataUrls.includes(d.url)); const errors = data - .map(person => Schema.validate(person)) + .map(person => + Schema.validate(person, { + abortEarly: false, + }) + ) .filter(v => v.error) .map(v => v.error); From 38464bf0653e3aeed5e958bef629946014d365e4 Mon Sep 17 00:00:00 2001 From: Rohit Gohri Date: Sun, 3 May 2020 23:58:55 +0530 Subject: [PATCH 07/12] ci: Move comment creation to dangerfile --- dangerfile.js | 18 +++++++++++++----- scripts/data-validate.js | 17 +++++++++-------- 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/dangerfile.js b/dangerfile.js index 5357e2f0..f35b5d0c 100644 --- a/dangerfile.js +++ b/dangerfile.js @@ -4,17 +4,25 @@ const validate = require('./scripts/data-validate'); async function main() { let comment = ''; - const { data: changedData, errors, failedUrls } = await validate(); + const { data: changedData, errorMsgs, failedUrls } = await validate(); // If there are errors, will fail the action & add a comment detailing the issues // If there are no errors, will leave an "all-clear" comment with relevant URLs (to ease a potential manual check) - if (errors.length || failedUrls.length) { - fail('Action failed with errors, see logs & comment'); + if (errorMsgs.length || failedUrls.length) { + fail( + `Action failed with ${errorMsgs.length + + failedUrls.length} errors, see logs & comment` + ); comment += [ '🚨 We have detected the following issues, let us (contributors) know if you need support or clarifications:', - ...errors.map(e => `- ${e.message}`), - ...failedUrls.map(url => `- URL is invalid: ${url}`), + + ...errorMsgs.map(msg => `- ${msg}`), + + ...failedUrls.map(({ url, error, statusCode }) => { + if (error) return `- URL is invalid: ${url}, error: ${error.message}`; + return `- URL is invalid: ${url}, status code: ${statusCode}`; + }), ].join('\n'); } else if (changedData.length) { comment += [ diff --git a/scripts/data-validate.js b/scripts/data-validate.js index c0cad8ff..e9cc0f91 100644 --- a/scripts/data-validate.js +++ b/scripts/data-validate.js @@ -1,4 +1,3 @@ -const core = require('@actions/core'); const { getMasterData, Schema, getStatusCode } = require('./utils.js'); const srcData = require('../src/data.js'); @@ -17,28 +16,30 @@ async function main() { .filter(v => v.error) .map(v => v.error); + const errorMsgs = []; + errors.forEach(e => { - core.error(e._original.name || e._original.url); - e.details.forEach(d => core.error(d.message)); + e.details.forEach(d => errorMsgs.push(d.message)); }); + /** + * @type {{url: string, statusCode?: number, error?: Error}[]} + */ const failedUrls = []; for (const { url } of data) { try { const statusCode = await getStatusCode(url); if (statusCode < 200 || statusCode >= 400) { - core.error(`Ping to "${url}" failed with status: ${statusCode}`); - failedUrls.push(url); + failedUrls.push({ url, statusCode }); } } catch (e) { - core.error(`Ping to "${url}" failed with error: ${e}`); - failedUrls.push(url); + failedUrls.push({ url, error: e }); } } return { failedUrls, - errors, + errorMsgs, data, }; } From 3d2af7bc38e1cab25ecb96233531332885cf67e7 Mon Sep 17 00:00:00 2001 From: Rohit Gohri Date: Sun, 3 May 2020 23:59:21 +0530 Subject: [PATCH 08/12] ci: use danger token --- .github/workflows/data-validate.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/data-validate.yml b/.github/workflows/data-validate.yml index 38d788bc..a89cb0f3 100644 --- a/.github/workflows/data-validate.yml +++ b/.github/workflows/data-validate.yml @@ -28,4 +28,4 @@ jobs: - name: Validate data.js using DangerJS run: npx danger ci env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + DANGER_GITHUB_API_TOKEN: ${{ secrets.DANGER_GITHUB_API_TOKEN }} From ef972cf38f1975d122578d6189bdd1f45339714d Mon Sep 17 00:00:00 2001 From: Rohit Gohri Date: Mon, 4 May 2020 00:12:42 +0530 Subject: [PATCH 09/12] ci: better formatted messages --- dangerfile.js | 57 ++++++++++++++++++++++------------------ scripts/data-validate.js | 4 ++- 2 files changed, 34 insertions(+), 27 deletions(-) diff --git a/dangerfile.js b/dangerfile.js index f35b5d0c..24bcde3a 100644 --- a/dangerfile.js +++ b/dangerfile.js @@ -1,39 +1,44 @@ /* eslint-disable import/no-extraneous-dependencies */ -const { fail, markdown, schedule } = require('danger'); +const { fail, markdown, message, schedule } = require('danger'); const validate = require('./scripts/data-validate'); async function main() { - let comment = ''; const { data: changedData, errorMsgs, failedUrls } = await validate(); // If there are errors, will fail the action & add a comment detailing the issues - // If there are no errors, will leave an "all-clear" comment with relevant URLs (to ease a potential manual check) - if (errorMsgs.length || failedUrls.length) { - fail( - `Action failed with ${errorMsgs.length + - failedUrls.length} errors, see logs & comment` + if (errorMsgs.length) { + fail(`There are ${errorMsgs.length} validation error(s)`); + + markdown( + `### Validation Issues\n${errorMsgs.map(msg => `- ${msg}`).join('\n')}` ); - - comment += [ - '🚨 We have detected the following issues, let us (contributors) know if you need support or clarifications:', - - ...errorMsgs.map(msg => `- ${msg}`), - - ...failedUrls.map(({ url, error, statusCode }) => { - if (error) return `- URL is invalid: ${url}, error: ${error.message}`; - return `- URL is invalid: ${url}, status code: ${statusCode}`; - }), - ].join('\n'); - } else if (changedData.length) { - comment += [ - '✅ Automatic validation checks succeeded for:', - // Comment with the URLs of users that have changed - // for easy access, way easier than taking a screenshot - ...changedData.map(({ name, url }) => `- ${name}, ${url}`), - ].join('\n'); } - if (comment) markdown(comment); + if (failedUrls.length) { + fail(`There are ${failedUrls.length} failing URL(s)`); + + markdown( + `### Failing URLs\n${failedUrls + .map(({ url, error, statusCode }) => { + if (error) + return `- URL, ${url}, failed with error: ${error.message}`; + return `- URL, ${url}, failed with status code: ${statusCode}`; + }) + .join('\n')}` + ); + } + + // If there are no errors, will leave an "all-clear" comment with relevant URLs (to ease a potential manual check) + if (!errorMsgs.length && !failedUrls.length && changedData.length) { + message('Automatic validation checks succeeded', { icon: '✅' }); + // Comment with the URLs of users that have changed + // for easy access, way easier than taking a screenshot + markdown( + `### Changed URLs\n${changedData + .map(({ name, url }) => `- ${name}, ${url}`) + .join('\n')}` + ); + } } schedule(main); diff --git a/scripts/data-validate.js b/scripts/data-validate.js index e9cc0f91..9f25cf7b 100644 --- a/scripts/data-validate.js +++ b/scripts/data-validate.js @@ -19,7 +19,9 @@ async function main() { const errorMsgs = []; errors.forEach(e => { - e.details.forEach(d => errorMsgs.push(d.message)); + e.details.forEach(d => + errorMsgs.push(`${e._original.name || e._original.url}: ${d.message}`) + ); }); /** From 61e1aeeb3674d29396285fec6b813deed91d35b9 Mon Sep 17 00:00:00 2001 From: Rohit Gohri Date: Mon, 4 May 2020 00:35:12 +0530 Subject: [PATCH 10/12] ci: use danger diff to get master data --- dangerfile.js | 17 +++++++++++++-- scripts/data-validate.js | 7 +++--- scripts/masterData.js | 5 ----- scripts/utils.js | 46 ---------------------------------------- 4 files changed, 18 insertions(+), 57 deletions(-) delete mode 100644 scripts/masterData.js diff --git a/dangerfile.js b/dangerfile.js index 24bcde3a..b7dd33d2 100644 --- a/dangerfile.js +++ b/dangerfile.js @@ -1,9 +1,22 @@ /* eslint-disable import/no-extraneous-dependencies */ -const { fail, markdown, message, schedule } = require('danger'); +const { danger, fail, markdown, message, schedule } = require('danger'); const validate = require('./scripts/data-validate'); +const DATA_FILE = 'src/data.js'; + async function main() { - const { data: changedData, errorMsgs, failedUrls } = await validate(); + if (!danger.git.modified_files.includes(DATA_FILE)) { + message(`No changes in \`${DATA_FILE}\``); + return; + } + + const diff = await danger.git.diffForFile(DATA_FILE); + // eslint-disable-next-line no-eval + const masterData = eval(diff.before); + + const { data: changedData, errorMsgs, failedUrls } = await validate( + masterData + ); // If there are errors, will fail the action & add a comment detailing the issues if (errorMsgs.length) { diff --git a/scripts/data-validate.js b/scripts/data-validate.js index 9f25cf7b..3b80d324 100644 --- a/scripts/data-validate.js +++ b/scripts/data-validate.js @@ -1,9 +1,8 @@ -const { getMasterData, Schema, getStatusCode } = require('./utils.js'); +const { Schema, getStatusCode } = require('./utils.js'); const srcData = require('../src/data.js'); -async function main() { - // on master branch will be empty array - const masterDataUrls = (await getMasterData()).map(d => d.url); +async function main(masterData = []) { + const masterDataUrls = masterData.map(d => d.url); // so here data will be an array with all users const data = srcData.filter(d => !masterDataUrls.includes(d.url)); diff --git a/scripts/masterData.js b/scripts/masterData.js deleted file mode 100644 index 3d4c49b7..00000000 --- a/scripts/masterData.js +++ /dev/null @@ -1,5 +0,0 @@ -/** - * this is a stub file, do not edit it - * see `scripts/utils.js` -> `getMasterData` - */ -module.exports = []; diff --git a/scripts/utils.js b/scripts/utils.js index fd5e7ea2..b6fb6b12 100644 --- a/scripts/utils.js +++ b/scripts/utils.js @@ -1,54 +1,8 @@ -const exec = require('@actions/exec'); -const core = require('@actions/core'); const Joi = require('@hapi/joi'); const http = require('http'); const https = require('https'); const flags = require('./flags.js'); -async function getCurrentBranchName() { - let myOutput = ''; - let myError = ''; - - const options = { - silent: true, - listeners: { - stdout: data => (myOutput += data.toString()), - stderr: data => (myError += data.toString()), - }, - }; - - await exec.exec('git rev-parse --abbrev-ref HEAD', [], options); - return myOutput.trim(); -} - -/** on master branch will return an empty array */ -module.exports.getMasterData = async function() { - const options = { silent: true }; - const curentBranchName = await getCurrentBranchName(); - // when on a branch/PR different from master - // will populate scripts/masterData.js with src/data.js from master - if (curentBranchName !== 'master') { - core.info('Executing action on branch different from master'); - await exec.exec('mv src/data.js src/tmpData.js', [], options); - await exec.exec('git fetch origin master', [], options); - await exec.exec('git restore --source=FETCH_HEAD src/data.js', [], options); - await exec.exec('mv src/data.js scripts/masterData.js', [], options); - await exec.exec('mv src/tmpData.js src/data.js', [], options); - } else { - core.info('Executing action on master branch'); - } - - // eslint-disable-next-line global-require - const masterData = require('./masterData.js'); - - // restore `scripts/masterData.js` after was loaded - if (curentBranchName !== 'master') { - await exec.exec('git restore scripts/masterData.js', [], options); - } - - return masterData; -}; - module.exports.Schema = Joi.object({ name: Joi.string().required(), description: Joi.string().required(), From 48c717fb9579b4a232ad4b10a1667449a1f421e3 Mon Sep 17 00:00:00 2001 From: Rohit Gohri Date: Mon, 4 May 2020 00:42:52 +0530 Subject: [PATCH 11/12] add different wrong data --- src/data.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/data.js b/src/data.js index 5058e0bb..0f664695 100644 --- a/src/data.js +++ b/src/data.js @@ -7695,7 +7695,7 @@ module.exports = [ { name: 'Rohit Gohri', description: 'Dummy entry to trigger workflow', - url: 'https://rohit.page', + url: 'https://rohit.page/using', twitter: '@rohit-gohri', emoji: '🌲', country: '🇮🇳', From c1c356e6229f511fc684eb30ba08c664c680eae2 Mon Sep 17 00:00:00 2001 From: Rohit Gohri Date: Mon, 4 May 2020 00:46:25 +0530 Subject: [PATCH 12/12] chore: remove unused packages --- package-lock.json | 99 +++++++++++++++-------------------------------- package.json | 3 -- 2 files changed, 32 insertions(+), 70 deletions(-) diff --git a/package-lock.json b/package-lock.json index 443c3e53..be4c1362 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,33 +4,6 @@ "lockfileVersion": 1, "requires": true, "dependencies": { - "@actions/core": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.2.1.tgz", - "integrity": "sha512-xD+CQd9p4lU7ZfRqmUcbJpqR+Ss51rJRVeXMyOLrZQImN9/8Sy/BEUBnHO/UKD3z03R686PVTLfEPmkropGuLw==" - }, - "@actions/exec": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.0.3.tgz", - "integrity": "sha512-TogJGnueOmM7ntCi0ASTUj4LapRRtDfj57Ja4IhPmg2fls28uVOPbAn8N+JifaOumN2UG3oEO/Ixek2A4NcYSA==", - "requires": { - "@actions/io": "^1.0.1" - } - }, - "@actions/github": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@actions/github/-/github-2.0.1.tgz", - "integrity": "sha512-C7dAsCkpPi1HxTzLldz+oY+9c5G+nnaK7xgk8KA83VVGlrGK7d603E3snUAFocWrqEu/uvdYD82ytggjcpYSQA==", - "requires": { - "@octokit/graphql": "^4.3.1", - "@octokit/rest": "^16.15.0" - } - }, - "@actions/io": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.0.2.tgz", - "integrity": "sha512-J8KuFqVPr3p6U8W93DOXlXW6zFvrQAJANdS+vw0YhusLIq+bszW8zmK2Fh1C2kDPX8FMvwIl1OUcFgvJoXLbAg==" - }, "@architect/create": { "version": "1.0.14", "resolved": "https://registry.npmjs.org/@architect/create/-/create-1.0.14.tgz", @@ -1815,6 +1788,7 @@ "version": "5.5.1", "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-5.5.1.tgz", "integrity": "sha512-nBFhRUb5YzVTCX/iAK1MgQ4uWo89Gu0TH00qQHoYRCsE12dWcG1OiLd7v2EIo2+tpUKPMOQ62QFy9hy9Vg2ULg==", + "dev": true, "requires": { "@octokit/types": "^2.0.0", "is-plain-object": "^3.0.0", @@ -1825,6 +1799,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz", "integrity": "sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg==", + "dev": true, "requires": { "isobject": "^4.0.0" } @@ -1832,20 +1807,11 @@ "isobject": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", - "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==" + "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==", + "dev": true } } }, - "@octokit/graphql": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.3.1.tgz", - "integrity": "sha512-hCdTjfvrK+ilU2keAdqNBWOk+gm1kai1ZcdjRfB30oA3/T6n53UVJb7w0L5cR3/rhU91xT3HSqCd+qbvH06yxA==", - "requires": { - "@octokit/request": "^5.3.0", - "@octokit/types": "^2.0.0", - "universal-user-agent": "^4.0.0" - } - }, "@octokit/plugin-paginate-rest": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-1.1.2.tgz", @@ -1875,6 +1841,7 @@ "version": "5.3.1", "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.3.1.tgz", "integrity": "sha512-5/X0AL1ZgoU32fAepTfEoggFinO3rxsMLtzhlUX+RctLrusn/CApJuGFCd0v7GMFhF+8UiCsTTfsu7Fh1HnEJg==", + "dev": true, "requires": { "@octokit/endpoint": "^5.5.0", "@octokit/request-error": "^1.0.1", @@ -1890,6 +1857,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz", "integrity": "sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg==", + "dev": true, "requires": { "isobject": "^4.0.0" } @@ -1897,12 +1865,14 @@ "isobject": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", - "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==" + "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==", + "dev": true }, "node-fetch": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", - "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==" + "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==", + "dev": true } } }, @@ -1910,35 +1880,18 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-1.2.0.tgz", "integrity": "sha512-DNBhROBYjjV/I9n7A8kVkmQNkqFAMem90dSxqvPq57e2hBr7mNTX98y3R2zDpqMQHVRpBDjsvsfIGgBzy+4PAg==", + "dev": true, "requires": { "@octokit/types": "^2.0.0", "deprecation": "^2.0.0", "once": "^1.4.0" } }, - "@octokit/rest": { - "version": "16.37.0", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.37.0.tgz", - "integrity": "sha512-qLPK9FOCK4iVpn6ghknNuv/gDDxXQG6+JBQvoCwWjQESyis9uemakjzN36nvvp8SCny7JuzHI2RV8ChbV5mYdQ==", - "requires": { - "@octokit/request": "^5.2.0", - "@octokit/request-error": "^1.0.2", - "atob-lite": "^2.0.0", - "before-after-hook": "^2.0.0", - "btoa-lite": "^1.0.0", - "deprecation": "^2.0.0", - "lodash.get": "^4.4.2", - "lodash.set": "^4.3.2", - "lodash.uniq": "^4.5.0", - "octokit-pagination-methods": "^1.1.0", - "once": "^1.4.0", - "universal-user-agent": "^4.0.0" - } - }, "@octokit/types": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.1.0.tgz", "integrity": "sha512-n1GUYFgKm5glcy0E+U5jnqAFY2p04rnK4A0YhuM70C7Vm9Vyx+xYwd/WOTEr8nUJcbPSR/XL+/26+rirY6jJQA==", + "dev": true, "requires": { "@types/node": ">= 8" } @@ -2770,7 +2723,8 @@ "atob-lite": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/atob-lite/-/atob-lite-2.0.0.tgz", - "integrity": "sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY=" + "integrity": "sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY=", + "dev": true }, "auto-bind": { "version": "3.0.0", @@ -3226,7 +3180,8 @@ "before-after-hook": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.1.0.tgz", - "integrity": "sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A==" + "integrity": "sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A==", + "dev": true }, "better-assert": { "version": "1.0.2", @@ -3807,7 +3762,8 @@ "btoa-lite": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", - "integrity": "sha1-M3dm2hWAEhD92VbCLpxokaudAzc=" + "integrity": "sha1-M3dm2hWAEhD92VbCLpxokaudAzc=", + "dev": true }, "buffer": { "version": "4.9.2", @@ -5734,7 +5690,8 @@ "deprecation": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", + "dev": true }, "depstatus": { "version": "1.0.0", @@ -12416,7 +12373,8 @@ "lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "dev": true }, "lodash.includes": { "version": "4.3.0", @@ -12496,7 +12454,8 @@ "lodash.set": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", - "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=" + "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", + "dev": true }, "lodash.sortby": { "version": "4.7.0", @@ -12700,7 +12659,8 @@ "macos-release": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.3.0.tgz", - "integrity": "sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA==" + "integrity": "sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA==", + "dev": true }, "make-dir": { "version": "2.1.0", @@ -13753,7 +13713,8 @@ "octokit-pagination-methods": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz", - "integrity": "sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ==" + "integrity": "sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ==", + "dev": true }, "omggif": { "version": "1.0.10", @@ -13903,6 +13864,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz", "integrity": "sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg==", + "dev": true, "requires": { "macos-release": "^2.2.0", "windows-release": "^3.1.0" @@ -18284,6 +18246,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-4.0.0.tgz", "integrity": "sha512-eM8knLpev67iBDizr/YtqkJsF3GK8gzDc6st/WKzrTuPtcsOKW/0IdL4cnMBsU69pOx0otavLWBDGTwg+dB0aA==", + "dev": true, "requires": { "os-name": "^3.1.0" } @@ -19260,6 +19223,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.2.0.tgz", "integrity": "sha512-QTlz2hKLrdqukrsapKsINzqMgOUpQW268eJ0OaOpJN32h272waxR9fkB9VoWRtK7uKHG5EHJcTXQBD8XZVJkFA==", + "dev": true, "requires": { "execa": "^1.0.0" }, @@ -19268,6 +19232,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, "requires": { "cross-spawn": "^6.0.0", "get-stream": "^4.0.0", diff --git a/package.json b/package.json index ed07e769..0efab526 100644 --- a/package.json +++ b/package.json @@ -12,9 +12,6 @@ "node": ">= 12" }, "dependencies": { - "@actions/core": "^1.2.1", - "@actions/exec": "^1.0.3", - "@actions/github": "^2.0.1", "@hapi/joi": "^17.0.2", "country-emoji": "^1.5.0", "esm": "^3.2.25",