From 59e61b89511ed136a0b17773f07c349fa5c01e8b Mon Sep 17 00:00:00 2001 From: Bryan MacFarlane Date: Wed, 22 Jul 2020 08:12:24 -0400 Subject: [PATCH 01/55] main workflow references --- .github/workflows/build-test.yml | 2 +- .github/workflows/versions.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 5d7c6c1..0b132aa 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -6,7 +6,7 @@ on: - '**.md' push: branches: - - master + - main - releases/* paths-ignore: - '**.md' diff --git a/.github/workflows/versions.yml b/.github/workflows/versions.yml index 38017ef..3beb1f7 100644 --- a/.github/workflows/versions.yml +++ b/.github/workflows/versions.yml @@ -6,7 +6,7 @@ on: - '**.md' push: branches: - - master + - main - releases/* paths-ignore: - '**.md' From 0635b31a614371b70fa13371ebeb26f3770f8d14 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Thu, 3 Sep 2020 07:14:10 -0500 Subject: [PATCH 02/55] feat: add readme for architecture Co-Authored-By: Tyler Ang-Wanek --- README.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/README.md b/README.md index 0bd60db..a63f70c 100644 --- a/README.md +++ b/README.md @@ -74,6 +74,28 @@ jobs: - run: npm test ``` +Architecture: +The architecture can be selected using `node-arch`. Values are `x86`, `x64`, `arm64`, `armv6l`, `armv7l`, `ppc64le`, `s390x` (not all of the architectures are available on all platforms). +```yaml +jobs: + build: + runs-on: windows-latest + strategy: + matrix: + node: [ '10', '12' ] + arch: ['x86', 'x64'] + name: Node ${{ matrix.node }} on ${{ matrix.arch }} + steps: + - uses: actions/checkout@v2 + - name: Setup node + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node }} + node-arch: ${{ matrix.arch }} + - run: npm install + - run: npm test +``` + Publish to npmjs and GPR with npm: ```yaml steps: From 2d8887128dabf6fe00c3cfd2f5a07b645d015765 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Thu, 3 Sep 2020 07:15:06 -0500 Subject: [PATCH 03/55] feat: node-arch in action.yml Co-Authored-By: Tyler Ang-Wanek --- action.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/action.yml b/action.yml index e5b901f..734f651 100644 --- a/action.yml +++ b/action.yml @@ -7,6 +7,8 @@ inputs: default: 'false' node-version: description: 'Version Spec of the version to use. Examples: 12.x, 10.15.1, >=10.15.0' + node-arch: + description: 'Target architecture for Node to use. Examples: x86, x64. Will use system architecture by default.' check-latest: description: 'Set this option if you want the action to check for the latest available version that satisfies the version spec' default: false From 42d59fbc367157620a6caada6fba63fffbf60dbc Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Thu, 3 Sep 2020 07:40:40 -0500 Subject: [PATCH 04/55] feat: add arch to run --- src/main.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main.ts b/src/main.ts index 328db0d..b1a33df 100644 --- a/src/main.ts +++ b/src/main.ts @@ -3,6 +3,7 @@ import * as installer from './installer'; import * as auth from './authutil'; import * as path from 'path'; import {URL} from 'url'; +import os = require('os'); export async function run() { try { @@ -15,13 +16,18 @@ export async function run() { version = core.getInput('version'); } + let arch = core.getInput('node-arch'); + if (!arch) { + arch = os.arch(); + } + if (version) { let token = core.getInput('token'); let auth = !token || isGhes() ? undefined : `token ${token}`; let stable = (core.getInput('stable') || 'true').toUpperCase() === 'TRUE'; const checkLatest = (core.getInput('check-latest') || 'false').toUpperCase() === 'TRUE'; - await installer.getNode(version, stable, checkLatest, auth); + await installer.getNode(version, stable, checkLatest, auth, arch); } const registryUrl: string = core.getInput('registry-url'); From f27ebaf08bdd5244f493c0e7a2a2fc241b7d6a04 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Thu, 3 Sep 2020 07:19:43 -0500 Subject: [PATCH 05/55] feat: add arch to getNode Co-Authored-By: Tyler Ang-Wanek --- src/installer.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/installer.ts b/src/installer.ts index feb8349..5d533f9 100644 --- a/src/installer.ts +++ b/src/installer.ts @@ -27,10 +27,11 @@ export async function getNode( versionSpec: string, stable: boolean, checkLatest: boolean, - auth: string | undefined + auth: string | undefined, + arch: string = os.arch() ) { let osPlat: string = os.platform(); - let osArch: string = translateArchToDistUrl(os.arch()); + let osArch: string = translateArchToDistUrl(arch); if (checkLatest) { core.info('Attempt to resolve the latest version from manifest...'); From 6668516d2adf4adf48b9cb8700ab83d53b4bd865 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Thu, 3 Sep 2020 07:35:58 -0500 Subject: [PATCH 06/55] feat: add arch to resolveVersionFromManifest --- src/installer.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/installer.ts b/src/installer.ts index 5d533f9..a9cd3b0 100644 --- a/src/installer.ts +++ b/src/installer.ts @@ -38,7 +38,8 @@ export async function getNode( const resolvedVersion = await resolveVersionFromManifest( versionSpec, stable, - auth + auth, + osArch ); if (resolvedVersion) { versionSpec = resolvedVersion; @@ -215,7 +216,8 @@ async function getInfoFromDist( async function resolveVersionFromManifest( versionSpec: string, stable: boolean, - auth: string | undefined + auth: string | undefined, + osArch: string = translateArchToDistUrl(os.arch()) ): Promise { try { const info = await getInfoFromManifest(versionSpec, stable, auth); From 3e84c3523b95abf147c5bad9941685beff5edeb9 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Thu, 3 Sep 2020 07:29:40 -0500 Subject: [PATCH 07/55] feat: add arch to INodeVersionInfo --- src/installer.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/installer.ts b/src/installer.ts index a9cd3b0..22c8953 100644 --- a/src/installer.ts +++ b/src/installer.ts @@ -20,6 +20,7 @@ export interface INodeVersion { interface INodeVersionInfo { downloadUrl: string; resolvedVersion: string; + arch: string; fileName: string; } From 6afbfca452be9589ed60a1b9ee0e914b8534679c Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Thu, 3 Sep 2020 07:34:03 -0500 Subject: [PATCH 08/55] feat: add arch to getInfoFromManifest --- src/installer.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/installer.ts b/src/installer.ts index 22c8953..1f2731c 100644 --- a/src/installer.ts +++ b/src/installer.ts @@ -66,7 +66,7 @@ export async function getNode( // Try download from internal distribution (popular versions only) // try { - info = await getInfoFromManifest(versionSpec, stable, auth); + info = await getInfoFromManifest(versionSpec, stable, auth, osArch); if (info) { core.info(`Acquiring ${info.resolvedVersion} from ${info.downloadUrl}`); downloadPath = await tc.downloadTool(info.downloadUrl, undefined, auth); @@ -161,7 +161,8 @@ export async function getNode( async function getInfoFromManifest( versionSpec: string, stable: boolean, - auth: string | undefined + auth: string | undefined, + osArch: string = translateArchToDistUrl(os.arch()) ): Promise { let info: INodeVersionInfo | null = null; const releases = await tc.getManifestFromRepo( @@ -170,11 +171,12 @@ async function getInfoFromManifest( auth, 'main' ); - const rel = await tc.findFromManifest(versionSpec, stable, releases); + const rel = await tc.findFromManifest(versionSpec, stable, releases, osArch); if (rel && rel.files.length > 0) { info = {}; info.resolvedVersion = rel.version; + info.arch = rel.files[0].arch; info.downloadUrl = rel.files[0].download_url; info.fileName = rel.files[0].filename; } @@ -221,7 +223,7 @@ async function resolveVersionFromManifest( osArch: string = translateArchToDistUrl(os.arch()) ): Promise { try { - const info = await getInfoFromManifest(versionSpec, stable, auth); + const info = await getInfoFromManifest(versionSpec, stable, auth, osArch); return info?.resolvedVersion; } catch (err) { core.info('Unable to resolve version from manifest...'); From bf47decdc210253204f0b3f54941635c55116f7d Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Thu, 3 Sep 2020 07:20:04 -0500 Subject: [PATCH 09/55] feat: add arch to tc.find Co-Authored-By: Tyler Ang-Wanek --- src/installer.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/installer.ts b/src/installer.ts index 1f2731c..8d0f3d7 100644 --- a/src/installer.ts +++ b/src/installer.ts @@ -52,7 +52,7 @@ export async function getNode( // check cache let toolPath: string; - toolPath = tc.find('node', versionSpec); + toolPath = tc.find('node', versionSpec, osArch); // If not found in cache, download if (toolPath) { From 3eb4bc9d685415820bbce79073db385b2ce8279a Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Thu, 3 Sep 2020 07:24:52 -0500 Subject: [PATCH 10/55] feat: add arch to acquireNodeFromFallbackLocation --- src/installer.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/installer.ts b/src/installer.ts index 8d0f3d7..310d79f 100644 --- a/src/installer.ts +++ b/src/installer.ts @@ -107,7 +107,10 @@ export async function getNode( downloadPath = await tc.downloadTool(info.downloadUrl); } catch (err) { if (err instanceof tc.HTTPError && err.httpStatusCode == 404) { - return await acquireNodeFromFallbackLocation(info.resolvedVersion); + return await acquireNodeFromFallbackLocation( + info.resolvedVersion, + info.arch + ); } throw err; @@ -317,10 +320,11 @@ export async function getVersionsFromDist(): Promise { // Note also that the files are normally zipped but in this case they are just an exe // and lib file in a folder, not zipped. async function acquireNodeFromFallbackLocation( - version: string + version: string, + arch: string = os.arch() ): Promise { let osPlat: string = os.platform(); - let osArch: string = translateArchToDistUrl(os.arch()); + let osArch: string = translateArchToDistUrl(arch); // Create temporary folder to download in to const tempDownloadFolder: string = From c7e4d385413777209720679cc2cc8e8dd388c3ca Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Thu, 3 Sep 2020 07:50:29 -0500 Subject: [PATCH 11/55] feat: add arch to downloading message --- __tests__/installer.test.ts | 4 ++-- src/installer.ts | 8 ++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/__tests__/installer.test.ts b/__tests__/installer.test.ts index 6f3a411..b1e3cb0 100644 --- a/__tests__/installer.test.ts +++ b/__tests__/installer.test.ts @@ -248,7 +248,7 @@ describe('setup-node', () => { expect(dlSpy).toHaveBeenCalled(); expect(exSpy).toHaveBeenCalled(); expect(logSpy).toHaveBeenCalledWith( - `Acquiring ${resolvedVersion} from ${expectedUrl}` + `Acquiring ${resolvedVersion} - ${os.arch} from ${expectedUrl}` ); expect(logSpy).toHaveBeenCalledWith( `Attempting to download ${versionSpec}...` @@ -399,7 +399,7 @@ describe('setup-node', () => { ); expect(logSpy).toHaveBeenCalledWith("Resolved as '12.16.2'"); expect(logSpy).toHaveBeenCalledWith( - `Acquiring 12.16.2 from ${expectedUrl}` + `Acquiring 12.16.2 - ${os.arch} from ${expectedUrl}` ); expect(logSpy).toHaveBeenCalledWith('Extracting ...'); }); diff --git a/src/installer.ts b/src/installer.ts index 310d79f..4553ece 100644 --- a/src/installer.ts +++ b/src/installer.ts @@ -68,7 +68,9 @@ export async function getNode( try { info = await getInfoFromManifest(versionSpec, stable, auth, osArch); if (info) { - core.info(`Acquiring ${info.resolvedVersion} from ${info.downloadUrl}`); + core.info( + `Acquiring ${info.resolvedVersion} - ${info.arch} from ${info.downloadUrl}` + ); downloadPath = await tc.downloadTool(info.downloadUrl, undefined, auth); } else { core.info( @@ -102,7 +104,9 @@ export async function getNode( ); } - core.info(`Acquiring ${info.resolvedVersion} from ${info.downloadUrl}`); + core.info( + `Acquiring ${info.resolvedVersion} - ${info.arch} from ${info.downloadUrl}` + ); try { downloadPath = await tc.downloadTool(info.downloadUrl); } catch (err) { From 2e40994c28e2faa662d15fea703fec55ffb771da Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Thu, 3 Sep 2020 07:54:48 -0500 Subject: [PATCH 12/55] feat: add arch to getInfoFromDist --- src/installer.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/installer.ts b/src/installer.ts index 4553ece..b109a58 100644 --- a/src/installer.ts +++ b/src/installer.ts @@ -97,7 +97,7 @@ export async function getNode( // Download from nodejs.org // if (!downloadPath) { - info = await getInfoFromDist(versionSpec); + info = await getInfoFromDist(versionSpec, arch); if (!info) { throw new Error( `Unable to find Node version '${versionSpec}' for platform ${osPlat} and architecture ${osArch}.` @@ -192,10 +192,11 @@ async function getInfoFromManifest( } async function getInfoFromDist( - versionSpec: string + versionSpec: string, + arch: string = os.arch() ): Promise { let osPlat: string = os.platform(); - let osArch: string = translateArchToDistUrl(os.arch()); + let osArch: string = translateArchToDistUrl(arch); let version: string; @@ -219,6 +220,7 @@ async function getInfoFromDist( return { downloadUrl: url, resolvedVersion: version, + arch: osArch, fileName: fileName }; } From 82271389a67b2caff50e06cdbb6710735465c09f Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Thu, 3 Sep 2020 07:58:24 -0500 Subject: [PATCH 13/55] feat: add arch to cacheDir --- src/installer.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/installer.ts b/src/installer.ts index b109a58..a2c4d6a 100644 --- a/src/installer.ts +++ b/src/installer.ts @@ -147,7 +147,12 @@ export async function getNode( // Install into the local tool cache - node extracts with a root folder that matches the fileName downloaded // core.info('Adding to the cache ...'); - toolPath = await tc.cacheDir(extPath, 'node', info.resolvedVersion); + toolPath = await tc.cacheDir( + extPath, + 'node', + info.resolvedVersion, + info.arch + ); core.info('Done'); } @@ -364,7 +369,7 @@ async function acquireNodeFromFallbackLocation( throw err; } } - let toolPath = await tc.cacheDir(tempDir, 'node', version); + let toolPath = await tc.cacheDir(tempDir, 'node', version, arch); core.addPath(toolPath); return toolPath; } From 66f3e9f7cee35d1cfc652f5f63777f2ef427029b Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Thu, 3 Sep 2020 08:49:37 -0500 Subject: [PATCH 14/55] feat: add arch to queryDistForMatch --- src/installer.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/installer.ts b/src/installer.ts index a2c4d6a..a2fcffa 100644 --- a/src/installer.ts +++ b/src/installer.ts @@ -205,7 +205,7 @@ async function getInfoFromDist( let version: string; - version = await queryDistForMatch(versionSpec); + version = await queryDistForMatch(versionSpec, arch); if (!version) { return null; } @@ -273,9 +273,12 @@ function evaluateVersions(versions: string[], versionSpec: string): string { return version; } -async function queryDistForMatch(versionSpec: string): Promise { +async function queryDistForMatch( + versionSpec: string, + arch: string = os.arch() +): Promise { let osPlat: string = os.platform(); - let osArch: string = translateArchToDistUrl(os.arch()); + let osArch: string = translateArchToDistUrl(arch); // node offers a json list of versions let dataFileName: string; From 7a3669aa8ae68a57ad9dfab3ea5293570132ad5a Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Thu, 3 Sep 2020 08:47:25 -0500 Subject: [PATCH 15/55] test: add arch tests Co-Authored-By: Tyler Ang-Wanek feat: add nock Co-Authored-By: Tyler Ang-Wanek --- .../mock-node-v12.18.3-linux-x64.tar.gz | Bin 0 -> 205 bytes .../mock-node-v12.18.3-linux-x86.tar.gz | Bin 0 -> 205 bytes .../mock-node-v12.18.3-win-x64.7z | Bin 0 -> 210 bytes .../mock-node-v12.18.3-win-x86.7z | Bin 0 -> 209 bytes __tests__/installer.test.ts | 47 ++++++++++++++++++ package-lock.json | 35 +++++++++++++ package.json | 1 + 7 files changed, 83 insertions(+) create mode 100644 __tests__/__fixtures__/mock-node-v12.18.3-linux-x64.tar.gz create mode 100644 __tests__/__fixtures__/mock-node-v12.18.3-linux-x86.tar.gz create mode 100644 __tests__/__fixtures__/mock-node-v12.18.3-win-x64.7z create mode 100644 __tests__/__fixtures__/mock-node-v12.18.3-win-x86.7z diff --git a/__tests__/__fixtures__/mock-node-v12.18.3-linux-x64.tar.gz b/__tests__/__fixtures__/mock-node-v12.18.3-linux-x64.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..50c8dd35e5e4461cd7af5255b6936650b2a27537 GIT binary patch literal 205 zcmV;;05bm{iwFpe{ZL;70B&z&Wi56wGA=PVE;B7`X>N6REqFFGE_7jX0PWJ<3c?^1 z!0~h4Q}_Z~o)2fQvz5?bIA|{R__-jWiw1#s(flDCK`(^Ae!RHqj#T5R=4$Buyi`jg zM@UF((bn2HpFZYmk8Fg+n1%>6q9FlgAcJ`d?G54!_UT*yuJ_6Qzz_Y!%G#gEHl=?K zTm9EFNI;|B?$7k@Z#dp(6b6;0$N6REqFLKE_7jX0PWI23d0}} zK+#$E6kZ_djH5BvNm`+SV4yL@7s#xxJY~mBj`f-y6I}G2g#b+nyYbeOQ=HI zoFO4Zg~pgTU%uvhPplOyts5x;i8Lb!4H+!6@9q#^a7@4Y_k&CJ2ma` H01N;CUO`&6 literal 0 HcmV?d00001 diff --git a/__tests__/__fixtures__/mock-node-v12.18.3-win-x64.7z b/__tests__/__fixtures__/mock-node-v12.18.3-win-x64.7z new file mode 100644 index 0000000000000000000000000000000000000000..f5ecfd4d27762e53124841feb8573bf3c5e414e6 GIT binary patch literal 210 zcmXr7+Ou9=hJodcb&|+L1_)4u(sM7dc{4IdmSkiWD*#bmeu+Y2o59? zaH-Z2-nqJO?rt|d^Tz76?uny4NAef{ewy_`Ue9Z~!_!3W3okpj)SkTZ)c%_5_Kz(Q z&77z2I@n**sJVQu-HYuh+h=h$IY!Q626k>n21aFOMn=|H1_1^Jo`!u~jFuVYbu+1_)4u(%y?dX)`iNmSkiWD*#bmeu+Y2o59? zaH-Z2-nqJO?rt|d^Tz76?uny4NAef{ewz0v=Iz_ZY0_TP%UnZ)O17`P`|-q0zG8O! zvJ8X8bG$fZ){5x+FY-5hC(b6v$XUd|&dtccsLagB$QsKaz`(%Mu#byT?%u^|3=9DO C literal 0 HcmV?d00001 diff --git a/__tests__/installer.test.ts b/__tests__/installer.test.ts index b1e3cb0..8007952 100644 --- a/__tests__/installer.test.ts +++ b/__tests__/installer.test.ts @@ -9,6 +9,7 @@ import * as main from '../src/main'; import * as im from '../src/installer'; import * as auth from '../src/authutil'; import {context} from '@actions/github'; +import nock = require('nock'); let nodeTestManifest = require('./data/versions-manifest.json'); let nodeTestDist = require('./data/node-dist-index.json'); @@ -337,6 +338,52 @@ describe('setup-node', () => { expect(cnSpy).toHaveBeenCalledWith(`::error::${errMsg}${osm.EOL}`); }); + it('Acquires specified x64 or x86 version of node if no matching version is installed', async () => { + const toolDir = path.join( + __dirname, + 'runner', + path.join( + Math.random() + .toString(36) + .substring(7) + ), + 'tools' + ); + + os.platform = process.platform; + const IS_WINDOWS = os.platform === 'win32'; + for (const {arch, version} of [ + {arch: 'x64', version: '12.18.3'}, + {arch: 'x86', version: '12.18.3'} + ]) { + nock.cleanAll(); + const fileExtension = IS_WINDOWS ? '7z' : 'tar.gz'; + const platform = { + linux: 'linux', + darwin: 'darwin', + win32: 'win' + }[process.platform]; + const fileName = `node-v${version}-${platform}-${arch}.${fileExtension}`; + const pathOnNodeJs = `/dist/v${version}/${fileName}`; + const scope = nock('nodejs.org') + .get(pathOnNodeJs) + .replyWithFile( + 200, + path.join(__dirname, '__fixtures__', `mock-${fileName}`) + ); + await im.getNode(version, true, true, undefined, arch); + const nodeDir = path.join(toolDir, 'node', version, arch); + + expect(scope.isDone()).toBe(true); + expect(fs.existsSync(`${nodeDir}.complete`)).toBe(true); + if (IS_WINDOWS) { + expect(fs.existsSync(path.join(nodeDir, 'node.exe'))).toBe(true); + } else { + expect(fs.existsSync(path.join(nodeDir, 'bin', 'node'))).toBe(true); + } + } + }, 100000); + describe('check-latest flag', () => { it('use local version and dont check manifest if check-latest is not specified', async () => { os.platform = 'linux'; diff --git a/package-lock.json b/package-lock.json index be7fec2..4f5279b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6577,6 +6577,35 @@ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" }, + "nock": { + "version": "13.0.4", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.0.4.tgz", + "integrity": "sha512-alqTV8Qt7TUbc74x1pKRLSENzfjp4nywovcJgi/1aXDiUxXdt7TkruSTF5MDWPP7UoPVgea4F9ghVdmX0xxnSA==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "json-stringify-safe": "^5.0.1", + "lodash.set": "^4.3.2", + "propagate": "^2.0.0" + }, + "dependencies": { + "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" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, "node-fetch": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", @@ -6945,6 +6974,12 @@ "sisteransi": "^1.0.4" } }, + "propagate": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", + "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", + "dev": true + }, "psl": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", diff --git a/package.json b/package.json index 9a3f1c5..c80fa0c 100644 --- a/package.json +++ b/package.json @@ -38,6 +38,7 @@ "@zeit/ncc": "^0.21.0", "jest": "^24.9.0", "jest-circus": "^24.7.1", + "nock": "^13.0.4", "prettier": "^1.19.1", "ts-jest": "^24.3.0", "typescript": "^3.8.3" From 922f2f946810f648b0143b9e99b089fec7f43d0b Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Thu, 3 Sep 2020 12:33:11 -0500 Subject: [PATCH 16/55] test: revert using nock and fixtures --- .../mock-node-v12.18.3-linux-x64.tar.gz | Bin 205 -> 0 bytes .../mock-node-v12.18.3-linux-x86.tar.gz | Bin 205 -> 0 bytes .../mock-node-v12.18.3-win-x64.7z | Bin 210 -> 0 bytes .../mock-node-v12.18.3-win-x86.7z | Bin 209 -> 0 bytes __tests__/installer.test.ts | 1 - package-lock.json | 35 ------------------ package.json | 1 - 7 files changed, 37 deletions(-) delete mode 100644 __tests__/__fixtures__/mock-node-v12.18.3-linux-x64.tar.gz delete mode 100644 __tests__/__fixtures__/mock-node-v12.18.3-linux-x86.tar.gz delete mode 100644 __tests__/__fixtures__/mock-node-v12.18.3-win-x64.7z delete mode 100644 __tests__/__fixtures__/mock-node-v12.18.3-win-x86.7z diff --git a/__tests__/__fixtures__/mock-node-v12.18.3-linux-x64.tar.gz b/__tests__/__fixtures__/mock-node-v12.18.3-linux-x64.tar.gz deleted file mode 100644 index 50c8dd35e5e4461cd7af5255b6936650b2a27537..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 205 zcmV;;05bm{iwFpe{ZL;70B&z&Wi56wGA=PVE;B7`X>N6REqFFGE_7jX0PWJ<3c?^1 z!0~h4Q}_Z~o)2fQvz5?bIA|{R__-jWiw1#s(flDCK`(^Ae!RHqj#T5R=4$Buyi`jg zM@UF((bn2HpFZYmk8Fg+n1%>6q9FlgAcJ`d?G54!_UT*yuJ_6Qzz_Y!%G#gEHl=?K zTm9EFNI;|B?$7k@Z#dp(6b6;0$N6REqFLKE_7jX0PWI23d0}} zK+#$E6kZ_djH5BvNm`+SV4yL@7s#xxJY~mBj`f-y6I}G2g#b+nyYbeOQ=HI zoFO4Zg~pgTU%uvhPplOyts5x;i8Lb!4H+!6@9q#^a7@4Y_k&CJ2ma` H01N;CUO`&6 diff --git a/__tests__/__fixtures__/mock-node-v12.18.3-win-x64.7z b/__tests__/__fixtures__/mock-node-v12.18.3-win-x64.7z deleted file mode 100644 index f5ecfd4d27762e53124841feb8573bf3c5e414e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 210 zcmXr7+Ou9=hJodcb&|+L1_)4u(sM7dc{4IdmSkiWD*#bmeu+Y2o59? zaH-Z2-nqJO?rt|d^Tz76?uny4NAef{ewy_`Ue9Z~!_!3W3okpj)SkTZ)c%_5_Kz(Q z&77z2I@n**sJVQu-HYuh+h=h$IY!Q626k>n21aFOMn=|H1_1^Jo`!u~jFuVYbu+1_)4u(%y?dX)`iNmSkiWD*#bmeu+Y2o59? zaH-Z2-nqJO?rt|d^Tz76?uny4NAef{ewz0v=Iz_ZY0_TP%UnZ)O17`P`|-q0zG8O! zvJ8X8bG$fZ){5x+FY-5hC(b6v$XUd|&dtccsLagB$QsKaz`(%Mu#byT?%u^|3=9DO C diff --git a/__tests__/installer.test.ts b/__tests__/installer.test.ts index 8007952..d36fc01 100644 --- a/__tests__/installer.test.ts +++ b/__tests__/installer.test.ts @@ -9,7 +9,6 @@ import * as main from '../src/main'; import * as im from '../src/installer'; import * as auth from '../src/authutil'; import {context} from '@actions/github'; -import nock = require('nock'); let nodeTestManifest = require('./data/versions-manifest.json'); let nodeTestDist = require('./data/node-dist-index.json'); diff --git a/package-lock.json b/package-lock.json index 4f5279b..be7fec2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6577,35 +6577,6 @@ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" }, - "nock": { - "version": "13.0.4", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.0.4.tgz", - "integrity": "sha512-alqTV8Qt7TUbc74x1pKRLSENzfjp4nywovcJgi/1aXDiUxXdt7TkruSTF5MDWPP7UoPVgea4F9ghVdmX0xxnSA==", - "dev": true, - "requires": { - "debug": "^4.1.0", - "json-stringify-safe": "^5.0.1", - "lodash.set": "^4.3.2", - "propagate": "^2.0.0" - }, - "dependencies": { - "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" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, "node-fetch": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", @@ -6974,12 +6945,6 @@ "sisteransi": "^1.0.4" } }, - "propagate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", - "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", - "dev": true - }, "psl": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", diff --git a/package.json b/package.json index c80fa0c..9a3f1c5 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,6 @@ "@zeit/ncc": "^0.21.0", "jest": "^24.9.0", "jest-circus": "^24.7.1", - "nock": "^13.0.4", "prettier": "^1.19.1", "ts-jest": "^24.3.0", "typescript": "^3.8.3" From a83bf5112944474c1472889a4ffc5fe703759a10 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Thu, 3 Sep 2020 10:15:28 -0500 Subject: [PATCH 17/55] test: test using main.run and spying --- __tests__/installer.test.ts | 68 +++++++++++++++++-------------------- 1 file changed, 31 insertions(+), 37 deletions(-) diff --git a/__tests__/installer.test.ts b/__tests__/installer.test.ts index d36fc01..100b444 100644 --- a/__tests__/installer.test.ts +++ b/__tests__/installer.test.ts @@ -337,49 +337,43 @@ describe('setup-node', () => { expect(cnSpy).toHaveBeenCalledWith(`::error::${errMsg}${osm.EOL}`); }); - it('Acquires specified x64 or x86 version of node if no matching version is installed', async () => { - const toolDir = path.join( - __dirname, - 'runner', - path.join( - Math.random() - .toString(36) - .substring(7) - ), - 'tools' - ); - - os.platform = process.platform; - const IS_WINDOWS = os.platform === 'win32'; - for (const {arch, version} of [ - {arch: 'x64', version: '12.18.3'}, - {arch: 'x86', version: '12.18.3'} + it('Acquires specified architecture of node', async () => { + for (const {arch, version, osSpec} of [ + {arch: 'x86', version: '12.16.2', osSpec: 'win32'}, + {arch: 'x86', version: '14.0.0', osSpec: 'win32'} ]) { - nock.cleanAll(); - const fileExtension = IS_WINDOWS ? '7z' : 'tar.gz'; + os.platform = osSpec; + os.arch = arch; + const fileExtension = os.platform === 'win32' ? '7z' : 'tar.gz'; const platform = { linux: 'linux', darwin: 'darwin', win32: 'win' - }[process.platform]; - const fileName = `node-v${version}-${platform}-${arch}.${fileExtension}`; - const pathOnNodeJs = `/dist/v${version}/${fileName}`; - const scope = nock('nodejs.org') - .get(pathOnNodeJs) - .replyWithFile( - 200, - path.join(__dirname, '__fixtures__', `mock-${fileName}`) - ); - await im.getNode(version, true, true, undefined, arch); - const nodeDir = path.join(toolDir, 'node', version, arch); + }[os.platform]; - expect(scope.isDone()).toBe(true); - expect(fs.existsSync(`${nodeDir}.complete`)).toBe(true); - if (IS_WINDOWS) { - expect(fs.existsSync(path.join(nodeDir, 'node.exe'))).toBe(true); - } else { - expect(fs.existsSync(path.join(nodeDir, 'bin', 'node'))).toBe(true); - } + inputs['node-version'] = version; + inputs['node-arch'] = arch; + inputs['always-auth'] = false; + inputs['token'] = 'faketoken'; + + let expectedUrl = + arch === 'x64' + ? `https://github.com/actions/node-versions/releases/download/${version}/node-${version}-${platform}-${arch}.zip` + : `https://nodejs.org/dist/v${version}/node-v${version}-${platform}-${arch}.${fileExtension}`; + + // ... but not in the local cache + findSpy.mockImplementation(() => ''); + + dlSpy.mockImplementation(async () => '/some/temp/path'); + let toolPath = path.normalize(`/cache/node/${version}/${arch}`); + exSpy.mockImplementation(async () => '/some/other/temp/path'); + cacheSpy.mockImplementation(async () => toolPath); + + await main.run(); + expect(dlSpy).toHaveBeenCalled(); + expect(logSpy).toHaveBeenCalledWith( + `Acquiring ${version} - ${arch} from ${expectedUrl}` + ); } }, 100000); From 63fffe44114fe96a5a9c2905d46804c7c3c68808 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Thu, 3 Sep 2020 13:50:50 -0500 Subject: [PATCH 18/55] chore: add line-ending to gitattribute --- .gitattributes | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..e305bda --- /dev/null +++ b/.gitattributes @@ -0,0 +1,4 @@ +# Set default behavior to automatically normalize line endings, and force everything to be LF, except for Windows batch files that require CRLF, so that if a repo is accessed in Unix via a file share from Windows, the scripts will work. +* text=auto eol=lf +*.{cmd,[cC][mM][dD]} text eol=crlf +*.{bat,[bB][aA][tT]} text eol=crlf \ No newline at end of file From 0a161fe2f941d460add1e34f9043f3c141065209 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sat, 5 Sep 2020 06:57:59 -0500 Subject: [PATCH 19/55] fix: use arch instead of osArch in INodeVersionInfo --- src/installer.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/installer.ts b/src/installer.ts index a2fcffa..cc45e22 100644 --- a/src/installer.ts +++ b/src/installer.ts @@ -225,7 +225,7 @@ async function getInfoFromDist( return { downloadUrl: url, resolvedVersion: version, - arch: osArch, + arch: arch, fileName: fileName }; } From 2801f51f909b6e0d6b7e101cc223c6c9a9759a38 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sat, 5 Sep 2020 06:59:22 -0500 Subject: [PATCH 20/55] chore: build git clean -ffdx && npm ci && npm run pre-checkin --- dist/index.js | 53 +++++++++++++++++++++++++++++---------------------- 1 file changed, 30 insertions(+), 23 deletions(-) diff --git a/dist/index.js b/dist/index.js index 481183e..45da787 100644 --- a/dist/index.js +++ b/dist/index.js @@ -4632,6 +4632,7 @@ const installer = __importStar(__webpack_require__(749)); const auth = __importStar(__webpack_require__(202)); const path = __importStar(__webpack_require__(622)); const url_1 = __webpack_require__(835); +const os = __webpack_require__(87); function run() { return __awaiter(this, void 0, void 0, function* () { try { @@ -4643,12 +4644,16 @@ function run() { if (!version) { version = core.getInput('version'); } + let arch = core.getInput('node-arch'); + if (!arch) { + arch = os.arch(); + } if (version) { let token = core.getInput('token'); let auth = !token || isGhes() ? undefined : `token ${token}`; let stable = (core.getInput('stable') || 'true').toUpperCase() === 'TRUE'; const checkLatest = (core.getInput('check-latest') || 'false').toUpperCase() === 'TRUE'; - yield installer.getNode(version, stable, checkLatest, auth); + yield installer.getNode(version, stable, checkLatest, auth, arch); } const registryUrl = core.getInput('registry-url'); const alwaysAuth = core.getInput('always-auth'); @@ -12994,13 +12999,13 @@ const tc = __importStar(__webpack_require__(533)); const path = __importStar(__webpack_require__(622)); const semver = __importStar(__webpack_require__(280)); const fs = __webpack_require__(747); -function getNode(versionSpec, stable, checkLatest, auth) { +function getNode(versionSpec, stable, checkLatest, auth, arch = os.arch()) { return __awaiter(this, void 0, void 0, function* () { let osPlat = os.platform(); - let osArch = translateArchToDistUrl(os.arch()); + let osArch = translateArchToDistUrl(arch); if (checkLatest) { core.info('Attempt to resolve the latest version from manifest...'); - const resolvedVersion = yield resolveVersionFromManifest(versionSpec, stable, auth); + const resolvedVersion = yield resolveVersionFromManifest(versionSpec, stable, auth, osArch); if (resolvedVersion) { versionSpec = resolvedVersion; core.info(`Resolved as '${versionSpec}'`); @@ -13011,7 +13016,7 @@ function getNode(versionSpec, stable, checkLatest, auth) { } // check cache let toolPath; - toolPath = tc.find('node', versionSpec); + toolPath = tc.find('node', versionSpec, osArch); // If not found in cache, download if (toolPath) { core.info(`Found in cache @ ${toolPath}`); @@ -13024,9 +13029,9 @@ function getNode(versionSpec, stable, checkLatest, auth) { // Try download from internal distribution (popular versions only) // try { - info = yield getInfoFromManifest(versionSpec, stable, auth); + info = yield getInfoFromManifest(versionSpec, stable, auth, osArch); if (info) { - core.info(`Acquiring ${info.resolvedVersion} from ${info.downloadUrl}`); + core.info(`Acquiring ${info.resolvedVersion} - ${info.arch} from ${info.downloadUrl}`); downloadPath = yield tc.downloadTool(info.downloadUrl, undefined, auth); } else { @@ -13049,17 +13054,17 @@ function getNode(versionSpec, stable, checkLatest, auth) { // Download from nodejs.org // if (!downloadPath) { - info = yield getInfoFromDist(versionSpec); + info = yield getInfoFromDist(versionSpec, arch); if (!info) { throw new Error(`Unable to find Node version '${versionSpec}' for platform ${osPlat} and architecture ${osArch}.`); } - core.info(`Acquiring ${info.resolvedVersion} from ${info.downloadUrl}`); + core.info(`Acquiring ${info.resolvedVersion} - ${info.arch} from ${info.downloadUrl}`); try { downloadPath = yield tc.downloadTool(info.downloadUrl); } catch (err) { if (err instanceof tc.HTTPError && err.httpStatusCode == 404) { - return yield acquireNodeFromFallbackLocation(info.resolvedVersion); + return yield acquireNodeFromFallbackLocation(info.resolvedVersion, info.arch); } throw err; } @@ -13090,7 +13095,7 @@ function getNode(versionSpec, stable, checkLatest, auth) { // Install into the local tool cache - node extracts with a root folder that matches the fileName downloaded // core.info('Adding to the cache ...'); - toolPath = yield tc.cacheDir(extPath, 'node', info.resolvedVersion); + toolPath = yield tc.cacheDir(extPath, 'node', info.resolvedVersion, info.arch); core.info('Done'); } // @@ -13107,26 +13112,27 @@ function getNode(versionSpec, stable, checkLatest, auth) { }); } exports.getNode = getNode; -function getInfoFromManifest(versionSpec, stable, auth) { +function getInfoFromManifest(versionSpec, stable, auth, osArch = translateArchToDistUrl(os.arch())) { return __awaiter(this, void 0, void 0, function* () { let info = null; const releases = yield tc.getManifestFromRepo('actions', 'node-versions', auth, 'main'); - const rel = yield tc.findFromManifest(versionSpec, stable, releases); + const rel = yield tc.findFromManifest(versionSpec, stable, releases, osArch); if (rel && rel.files.length > 0) { info = {}; info.resolvedVersion = rel.version; + info.arch = rel.files[0].arch; info.downloadUrl = rel.files[0].download_url; info.fileName = rel.files[0].filename; } return info; }); } -function getInfoFromDist(versionSpec) { +function getInfoFromDist(versionSpec, arch = os.arch()) { return __awaiter(this, void 0, void 0, function* () { let osPlat = os.platform(); - let osArch = translateArchToDistUrl(os.arch()); + let osArch = translateArchToDistUrl(arch); let version; - version = yield queryDistForMatch(versionSpec); + version = yield queryDistForMatch(versionSpec, arch); if (!version) { return null; } @@ -13142,14 +13148,15 @@ function getInfoFromDist(versionSpec) { return { downloadUrl: url, resolvedVersion: version, + arch: arch, fileName: fileName }; }); } -function resolveVersionFromManifest(versionSpec, stable, auth) { +function resolveVersionFromManifest(versionSpec, stable, auth, osArch = translateArchToDistUrl(os.arch())) { return __awaiter(this, void 0, void 0, function* () { try { - const info = yield getInfoFromManifest(versionSpec, stable, auth); + const info = yield getInfoFromManifest(versionSpec, stable, auth, osArch); return info === null || info === void 0 ? void 0 : info.resolvedVersion; } catch (err) { @@ -13184,10 +13191,10 @@ function evaluateVersions(versions, versionSpec) { } return version; } -function queryDistForMatch(versionSpec) { +function queryDistForMatch(versionSpec, arch = os.arch()) { return __awaiter(this, void 0, void 0, function* () { let osPlat = os.platform(); - let osArch = translateArchToDistUrl(os.arch()); + let osArch = translateArchToDistUrl(arch); // node offers a json list of versions let dataFileName; switch (osPlat) { @@ -13240,10 +13247,10 @@ exports.getVersionsFromDist = getVersionsFromDist; // This method attempts to download and cache the resources from these alternative locations. // Note also that the files are normally zipped but in this case they are just an exe // and lib file in a folder, not zipped. -function acquireNodeFromFallbackLocation(version) { +function acquireNodeFromFallbackLocation(version, arch = os.arch()) { return __awaiter(this, void 0, void 0, function* () { let osPlat = os.platform(); - let osArch = translateArchToDistUrl(os.arch()); + let osArch = translateArchToDistUrl(arch); // Create temporary folder to download in to const tempDownloadFolder = 'temp_' + Math.floor(Math.random() * 2000000000); const tempDirectory = process.env['RUNNER_TEMP'] || ''; @@ -13274,7 +13281,7 @@ function acquireNodeFromFallbackLocation(version) { throw err; } } - let toolPath = yield tc.cacheDir(tempDir, 'node', version); + let toolPath = yield tc.cacheDir(tempDir, 'node', version, arch); core.addPath(toolPath); return toolPath; }); From 2a5c060ce28fea5df265375fde1fa37b767a310b Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 6 Sep 2020 11:09:41 -0500 Subject: [PATCH 21/55] fix: add warning for when arch is supplied but version is missing --- dist/index.js | 5 +++++ src/main.ts | 9 +++++++++ 2 files changed, 14 insertions(+) diff --git a/dist/index.js b/dist/index.js index 45da787..ee4c75a 100644 --- a/dist/index.js +++ b/dist/index.js @@ -4645,6 +4645,11 @@ function run() { version = core.getInput('version'); } let arch = core.getInput('node-arch'); + // if node-arch supplied but node-version is not + // if we don't throw a warning, the already installed x64 node will be used which is not probably what user meant. + if (arch && !version) { + core.warning('`node-arch` is provided but `node-version` is missing. This results in using an already installed x64 node which is not probably what you meant. To fix this, provide `node-arch` in combination with `node-version`'); + } if (!arch) { arch = os.arch(); } diff --git a/src/main.ts b/src/main.ts index b1a33df..0d3eb77 100644 --- a/src/main.ts +++ b/src/main.ts @@ -17,6 +17,15 @@ export async function run() { } let arch = core.getInput('node-arch'); + + // if node-arch supplied but node-version is not + // if we don't throw a warning, the already installed x64 node will be used which is not probably what user meant. + if (arch && !version) { + core.warning( + '`node-arch` is provided but `node-version` is missing. This results in using an already installed x64 node which is not probably what you meant. To fix this, provide `node-arch` in combination with `node-version`' + ); + } + if (!arch) { arch = os.arch(); } From 99d584aa06f947eb56f0dd38ca328bb7e0e9b0ff Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sun, 6 Sep 2020 11:32:03 -0500 Subject: [PATCH 22/55] docs: enhance the readme example to include multiple os, version, and archs --- README.md | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index a63f70c..0f5de87 100644 --- a/README.md +++ b/README.md @@ -74,24 +74,38 @@ jobs: - run: npm test ``` -Architecture: -The architecture can be selected using `node-arch`. Values are `x86`, `x64`, `arm64`, `armv6l`, `armv7l`, `ppc64le`, `s390x` (not all of the architectures are available on all platforms). +Operating Systems and Architecture: + +You can use any of the [supported operating systems](https://docs.github.com/en/actions/reference/virtual-environments-for-github-hosted-runners). The architecture can be selected using `node-arch`. Values are `x86`, `x64`, `arm64`, `armv6l`, `armv7l`, `ppc64le`, `s390x` (not all of the architectures are available on all platforms). ```yaml jobs: build: - runs-on: windows-latest + runs-on: ${{ matrix.os }} strategy: matrix: - node: [ '10', '12' ] - arch: ['x86', 'x64'] - name: Node ${{ matrix.node }} on ${{ matrix.arch }} + os: + - ubuntu-latest + - macos-latest + - windows-latest + node_version: + - 10 + - 12 + - 14 + node_arch: + - x64 + # an extra windows-x86 run: + include: + - os: windows-2016 + node_version: 12 + node_arch: x86 + name: Node ${{ matrix.node_version }} - ${{ matrix.node_arch }} on ${{ matrix.os }} steps: - uses: actions/checkout@v2 - name: Setup node uses: actions/setup-node@v1 with: - node-version: ${{ matrix.node }} - node-arch: ${{ matrix.arch }} + node-version: ${{ matrix.node_version }} + node-arch: ${{ matrix.node_arch }} - run: npm install - run: npm test ``` From c211e95e60c2a8db273e122ba1845305b1943494 Mon Sep 17 00:00:00 2001 From: Thomas Boop <52323235+thboop@users.noreply.github.com> Date: Thu, 10 Sep 2020 09:23:54 -0400 Subject: [PATCH 23/55] Add `Licensed` To Help Verify Prod Licenses (#180) * add licensed workflow and config files * manual dependency verification * Hide generated license files in pr --- .gitattributes | 1 + .github/workflows/licensed.yml | 20 ++ .licensed.yml | 14 ++ .licenses/npm/@actions/core-1.2.2.dep.yml | 30 +++ .licenses/npm/@actions/core-1.2.4.dep.yml | 30 +++ .licenses/npm/@actions/exec.dep.yml | 30 +++ .licenses/npm/@actions/github.dep.yml | 18 ++ .../npm/@actions/http-client-1.0.6.dep.yml | 32 +++ .../npm/@actions/http-client-1.0.8.dep.yml | 32 +++ .licenses/npm/@actions/io.dep.yml | 30 +++ .licenses/npm/@actions/tool-cache.dep.yml | 30 +++ .licenses/npm/@octokit/auth-token.dep.yml | 34 +++ .licenses/npm/@octokit/endpoint.dep.yml | 34 +++ .licenses/npm/@octokit/graphql.dep.yml | 34 +++ .licenses/npm/@octokit/request-error.dep.yml | 34 +++ .licenses/npm/@octokit/request.dep.yml | 35 +++ .licenses/npm/@octokit/rest.dep.yml | 35 +++ .licenses/npm/@octokit/types.dep.yml | 20 ++ .licenses/npm/@types/node.dep.yml | 26 +++ .licenses/npm/atob-lite.dep.yml | 32 +++ .licenses/npm/before-after-hook.dep.yml | 214 ++++++++++++++++++ .licenses/npm/btoa-lite.dep.yml | 32 +++ .licenses/npm/cross-spawn.dep.yml | 34 +++ .licenses/npm/deprecation.dep.yml | 28 +++ .licenses/npm/end-of-stream.dep.yml | 34 +++ .licenses/npm/execa.dep.yml | 22 ++ .licenses/npm/get-stream.dep.yml | 22 ++ .licenses/npm/is-plain-object.dep.yml | 40 ++++ .licenses/npm/is-stream.dep.yml | 34 +++ .licenses/npm/isexe.dep.yml | 26 +++ .licenses/npm/isobject.dep.yml | 40 ++++ .licenses/npm/lodash.get.dep.yml | 58 +++++ .licenses/npm/lodash.set.dep.yml | 58 +++++ .licenses/npm/lodash.uniq.dep.yml | 58 +++++ .licenses/npm/macos-release.dep.yml | 22 ++ .licenses/npm/nice-try.dep.yml | 32 +++ .licenses/npm/node-fetch.dep.yml | 52 +++++ .licenses/npm/npm-run-path.dep.yml | 34 +++ .../npm/octokit-pagination-methods.dep.yml | 35 +++ .licenses/npm/once.dep.yml | 26 +++ .licenses/npm/os-name.dep.yml | 22 ++ .licenses/npm/p-finally.dep.yml | 35 +++ .licenses/npm/path-key.dep.yml | 34 +++ .licenses/npm/pump.dep.yml | 34 +++ .licenses/npm/semver-5.7.0.dep.yml | 26 +++ .licenses/npm/semver-6.1.2.dep.yml | 26 +++ .licenses/npm/shebang-command.dep.yml | 34 +++ .licenses/npm/shebang-regex.dep.yml | 34 +++ .licenses/npm/signal-exit.dep.yml | 27 +++ .licenses/npm/strip-eof.dep.yml | 34 +++ .licenses/npm/tunnel.dep.yml | 35 +++ .../npm/universal-user-agent-2.1.0.dep.yml | 20 ++ .../npm/universal-user-agent-4.0.0.dep.yml | 20 ++ .licenses/npm/uuid.dep.yml | 39 ++++ .licenses/npm/which.dep.yml | 27 +++ .licenses/npm/windows-release.dep.yml | 23 ++ .licenses/npm/wrappy.dep.yml | 26 +++ 57 files changed, 1948 insertions(+) create mode 100644 .gitattributes create mode 100644 .github/workflows/licensed.yml create mode 100644 .licensed.yml create mode 100644 .licenses/npm/@actions/core-1.2.2.dep.yml create mode 100644 .licenses/npm/@actions/core-1.2.4.dep.yml create mode 100644 .licenses/npm/@actions/exec.dep.yml create mode 100644 .licenses/npm/@actions/github.dep.yml create mode 100644 .licenses/npm/@actions/http-client-1.0.6.dep.yml create mode 100644 .licenses/npm/@actions/http-client-1.0.8.dep.yml create mode 100644 .licenses/npm/@actions/io.dep.yml create mode 100644 .licenses/npm/@actions/tool-cache.dep.yml create mode 100644 .licenses/npm/@octokit/auth-token.dep.yml create mode 100644 .licenses/npm/@octokit/endpoint.dep.yml create mode 100644 .licenses/npm/@octokit/graphql.dep.yml create mode 100644 .licenses/npm/@octokit/request-error.dep.yml create mode 100644 .licenses/npm/@octokit/request.dep.yml create mode 100644 .licenses/npm/@octokit/rest.dep.yml create mode 100644 .licenses/npm/@octokit/types.dep.yml create mode 100644 .licenses/npm/@types/node.dep.yml create mode 100644 .licenses/npm/atob-lite.dep.yml create mode 100644 .licenses/npm/before-after-hook.dep.yml create mode 100644 .licenses/npm/btoa-lite.dep.yml create mode 100644 .licenses/npm/cross-spawn.dep.yml create mode 100644 .licenses/npm/deprecation.dep.yml create mode 100644 .licenses/npm/end-of-stream.dep.yml create mode 100644 .licenses/npm/execa.dep.yml create mode 100644 .licenses/npm/get-stream.dep.yml create mode 100644 .licenses/npm/is-plain-object.dep.yml create mode 100644 .licenses/npm/is-stream.dep.yml create mode 100644 .licenses/npm/isexe.dep.yml create mode 100644 .licenses/npm/isobject.dep.yml create mode 100644 .licenses/npm/lodash.get.dep.yml create mode 100644 .licenses/npm/lodash.set.dep.yml create mode 100644 .licenses/npm/lodash.uniq.dep.yml create mode 100644 .licenses/npm/macos-release.dep.yml create mode 100644 .licenses/npm/nice-try.dep.yml create mode 100644 .licenses/npm/node-fetch.dep.yml create mode 100644 .licenses/npm/npm-run-path.dep.yml create mode 100644 .licenses/npm/octokit-pagination-methods.dep.yml create mode 100644 .licenses/npm/once.dep.yml create mode 100644 .licenses/npm/os-name.dep.yml create mode 100644 .licenses/npm/p-finally.dep.yml create mode 100644 .licenses/npm/path-key.dep.yml create mode 100644 .licenses/npm/pump.dep.yml create mode 100644 .licenses/npm/semver-5.7.0.dep.yml create mode 100644 .licenses/npm/semver-6.1.2.dep.yml create mode 100644 .licenses/npm/shebang-command.dep.yml create mode 100644 .licenses/npm/shebang-regex.dep.yml create mode 100644 .licenses/npm/signal-exit.dep.yml create mode 100644 .licenses/npm/strip-eof.dep.yml create mode 100644 .licenses/npm/tunnel.dep.yml create mode 100644 .licenses/npm/universal-user-agent-2.1.0.dep.yml create mode 100644 .licenses/npm/universal-user-agent-4.0.0.dep.yml create mode 100644 .licenses/npm/uuid.dep.yml create mode 100644 .licenses/npm/which.dep.yml create mode 100644 .licenses/npm/windows-release.dep.yml create mode 100644 .licenses/npm/wrappy.dep.yml diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..f6ac05f --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +.licenses/** -diff linguist-generated=true diff --git a/.github/workflows/licensed.yml b/.github/workflows/licensed.yml new file mode 100644 index 0000000..ae62613 --- /dev/null +++ b/.github/workflows/licensed.yml @@ -0,0 +1,20 @@ +name: Licensed + +on: + push: {branches: main} + pull_request: {branches: main} + +jobs: + test: + runs-on: ubuntu-latest + name: Check licenses + steps: + - uses: actions/checkout@v2 + - run: npm ci + - name: Install licensed + run: | + cd $RUNNER_TEMP + curl -Lfs -o licensed.tar.gz https://github.com/github/licensed/releases/download/2.12.2/licensed-2.12.2-linux-x64.tar.gz + sudo tar -xzf licensed.tar.gz + sudo mv licensed /usr/local/bin/licensed + - run: licensed status \ No newline at end of file diff --git a/.licensed.yml b/.licensed.yml new file mode 100644 index 0000000..15f6198 --- /dev/null +++ b/.licensed.yml @@ -0,0 +1,14 @@ +sources: + npm: true + +allowed: + - apache-2.0 + - bsd-2-clause + - bsd-3-clause + - isc + - mit + - cc0-1.0 + - unlicense + +reviewed: + npm: \ No newline at end of file diff --git a/.licenses/npm/@actions/core-1.2.2.dep.yml b/.licenses/npm/@actions/core-1.2.2.dep.yml new file mode 100644 index 0000000..92b8b02 --- /dev/null +++ b/.licenses/npm/@actions/core-1.2.2.dep.yml @@ -0,0 +1,30 @@ +--- +name: "@actions/core" +version: 1.2.2 +type: npm +summary: Actions core lib +homepage: https://github.com/actions/toolkit/tree/master/packages/core +license: mit +licenses: +- sources: Auto-generated MIT license text + text: | + MIT License + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +notices: [] diff --git a/.licenses/npm/@actions/core-1.2.4.dep.yml b/.licenses/npm/@actions/core-1.2.4.dep.yml new file mode 100644 index 0000000..6fe946d --- /dev/null +++ b/.licenses/npm/@actions/core-1.2.4.dep.yml @@ -0,0 +1,30 @@ +--- +name: "@actions/core" +version: 1.2.4 +type: npm +summary: Actions core lib +homepage: https://github.com/actions/toolkit/tree/master/packages/core +license: mit +licenses: +- sources: Auto-generated MIT license text + text: | + MIT License + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +notices: [] diff --git a/.licenses/npm/@actions/exec.dep.yml b/.licenses/npm/@actions/exec.dep.yml new file mode 100644 index 0000000..b1effd3 --- /dev/null +++ b/.licenses/npm/@actions/exec.dep.yml @@ -0,0 +1,30 @@ +--- +name: "@actions/exec" +version: 1.0.4 +type: npm +summary: Actions exec lib +homepage: https://github.com/actions/toolkit/tree/master/packages/exec +license: mit +licenses: +- sources: Auto-generated MIT license text + text: | + MIT License + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +notices: [] diff --git a/.licenses/npm/@actions/github.dep.yml b/.licenses/npm/@actions/github.dep.yml new file mode 100644 index 0000000..d320416 --- /dev/null +++ b/.licenses/npm/@actions/github.dep.yml @@ -0,0 +1,18 @@ +--- +name: "@actions/github" +version: 1.1.0 +type: npm +summary: Actions github lib +homepage: https://github.com/actions/toolkit/tree/master/packages/github +license: mit +licenses: +- sources: LICENSE.md + text: |- + Copyright 2019 GitHub + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +notices: [] diff --git a/.licenses/npm/@actions/http-client-1.0.6.dep.yml b/.licenses/npm/@actions/http-client-1.0.6.dep.yml new file mode 100644 index 0000000..0b3fad7 --- /dev/null +++ b/.licenses/npm/@actions/http-client-1.0.6.dep.yml @@ -0,0 +1,32 @@ +--- +name: "@actions/http-client" +version: 1.0.6 +type: npm +summary: Actions Http Client +homepage: https://github.com/actions/http-client#readme +license: mit +licenses: +- sources: LICENSE + text: | + Actions Http Client for Node.js + + Copyright (c) GitHub, Inc. + + All rights reserved. + + MIT License + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and + associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT + LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +notices: [] diff --git a/.licenses/npm/@actions/http-client-1.0.8.dep.yml b/.licenses/npm/@actions/http-client-1.0.8.dep.yml new file mode 100644 index 0000000..d18a24f --- /dev/null +++ b/.licenses/npm/@actions/http-client-1.0.8.dep.yml @@ -0,0 +1,32 @@ +--- +name: "@actions/http-client" +version: 1.0.8 +type: npm +summary: Actions Http Client +homepage: https://github.com/actions/http-client#readme +license: mit +licenses: +- sources: LICENSE + text: | + Actions Http Client for Node.js + + Copyright (c) GitHub, Inc. + + All rights reserved. + + MIT License + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and + associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT + LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +notices: [] diff --git a/.licenses/npm/@actions/io.dep.yml b/.licenses/npm/@actions/io.dep.yml new file mode 100644 index 0000000..a23d1af --- /dev/null +++ b/.licenses/npm/@actions/io.dep.yml @@ -0,0 +1,30 @@ +--- +name: "@actions/io" +version: 1.0.2 +type: npm +summary: Actions io lib +homepage: https://github.com/actions/toolkit/tree/master/packages/io +license: mit +licenses: +- sources: Auto-generated MIT license text + text: | + MIT License + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +notices: [] diff --git a/.licenses/npm/@actions/tool-cache.dep.yml b/.licenses/npm/@actions/tool-cache.dep.yml new file mode 100644 index 0000000..42a1214 --- /dev/null +++ b/.licenses/npm/@actions/tool-cache.dep.yml @@ -0,0 +1,30 @@ +--- +name: "@actions/tool-cache" +version: 1.5.4 +type: npm +summary: Actions tool-cache lib +homepage: https://github.com/actions/toolkit/tree/master/packages/tool-cache +license: mit +licenses: +- sources: Auto-generated MIT license text + text: | + MIT License + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +notices: [] diff --git a/.licenses/npm/@octokit/auth-token.dep.yml b/.licenses/npm/@octokit/auth-token.dep.yml new file mode 100644 index 0000000..2295d0e --- /dev/null +++ b/.licenses/npm/@octokit/auth-token.dep.yml @@ -0,0 +1,34 @@ +--- +name: "@octokit/auth-token" +version: 2.4.0 +type: npm +summary: GitHub API token authentication for browsers and Node.js +homepage: https://github.com/octokit/auth-token.js#readme +license: mit +licenses: +- sources: LICENSE + text: | + The MIT License + + Copyright (c) 2019 Octokit contributors + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +- sources: README.md + text: "[MIT](LICENSE)" +notices: [] diff --git a/.licenses/npm/@octokit/endpoint.dep.yml b/.licenses/npm/@octokit/endpoint.dep.yml new file mode 100644 index 0000000..1db0e86 --- /dev/null +++ b/.licenses/npm/@octokit/endpoint.dep.yml @@ -0,0 +1,34 @@ +--- +name: "@octokit/endpoint" +version: 5.5.1 +type: npm +summary: Turns REST API endpoints into generic request options +homepage: https://github.com/octokit/endpoint.js#readme +license: mit +licenses: +- sources: LICENSE + text: | + The MIT License + + Copyright (c) 2018 Octokit contributors + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +- sources: README.md + text: "[MIT](LICENSE)" +notices: [] diff --git a/.licenses/npm/@octokit/graphql.dep.yml b/.licenses/npm/@octokit/graphql.dep.yml new file mode 100644 index 0000000..6b8f545 --- /dev/null +++ b/.licenses/npm/@octokit/graphql.dep.yml @@ -0,0 +1,34 @@ +--- +name: "@octokit/graphql" +version: 2.1.3 +type: npm +summary: GitHub GraphQL API client for browsers and Node +homepage: https://github.com/octokit/graphql.js#readme +license: mit +licenses: +- sources: LICENSE + text: | + The MIT License + + Copyright (c) 2018 Octokit contributors + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +- sources: README.md + text: "[MIT](LICENSE)" +notices: [] diff --git a/.licenses/npm/@octokit/request-error.dep.yml b/.licenses/npm/@octokit/request-error.dep.yml new file mode 100644 index 0000000..4260916 --- /dev/null +++ b/.licenses/npm/@octokit/request-error.dep.yml @@ -0,0 +1,34 @@ +--- +name: "@octokit/request-error" +version: 1.2.0 +type: npm +summary: Error class for Octokit request errors +homepage: https://github.com/octokit/request-error.js#readme +license: mit +licenses: +- sources: LICENSE + text: | + The MIT License + + Copyright (c) 2019 Octokit contributors + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +- sources: README.md + text: "[MIT](LICENSE)" +notices: [] diff --git a/.licenses/npm/@octokit/request.dep.yml b/.licenses/npm/@octokit/request.dep.yml new file mode 100644 index 0000000..acbc67c --- /dev/null +++ b/.licenses/npm/@octokit/request.dep.yml @@ -0,0 +1,35 @@ +--- +name: "@octokit/request" +version: 5.3.1 +type: npm +summary: Send parameterized requests to GitHub’s APIs with sensible defaults in browsers + and Node +homepage: https://github.com/octokit/request.js#readme +license: mit +licenses: +- sources: LICENSE + text: | + The MIT License + + Copyright (c) 2018 Octokit contributors + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +- sources: README.md + text: "[MIT](LICENSE)" +notices: [] diff --git a/.licenses/npm/@octokit/rest.dep.yml b/.licenses/npm/@octokit/rest.dep.yml new file mode 100644 index 0000000..c49637c --- /dev/null +++ b/.licenses/npm/@octokit/rest.dep.yml @@ -0,0 +1,35 @@ +--- +name: "@octokit/rest" +version: 16.38.1 +type: npm +summary: GitHub REST API client for Node.js +homepage: https://github.com/octokit/rest.js#readme +license: mit +licenses: +- sources: LICENSE + text: | + The MIT License + + Copyright (c) 2012 Cloud9 IDE, Inc. (Mike de Boer) + Copyright (c) 2017-2018 Octokit contributors + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +- sources: README.md + text: "[MIT](LICENSE)" +notices: [] diff --git a/.licenses/npm/@octokit/types.dep.yml b/.licenses/npm/@octokit/types.dep.yml new file mode 100644 index 0000000..55e5b6e --- /dev/null +++ b/.licenses/npm/@octokit/types.dep.yml @@ -0,0 +1,20 @@ +--- +name: "@octokit/types" +version: 2.1.1 +type: npm +summary: Shared TypeScript definitions for Octokit projects +homepage: https://github.com/octokit/types.ts#readme +license: mit +licenses: +- sources: LICENSE + text: | + MIT License Copyright (c) 2019 Octokit contributors + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +- sources: README.md + text: "[MIT](LICENSE)" +notices: [] diff --git a/.licenses/npm/@types/node.dep.yml b/.licenses/npm/@types/node.dep.yml new file mode 100644 index 0000000..a8fc69c --- /dev/null +++ b/.licenses/npm/@types/node.dep.yml @@ -0,0 +1,26 @@ +--- +name: "@types/node" +version: 12.0.10 +type: npm +summary: TypeScript definitions for Node.js +homepage: https://github.com/DefinitelyTyped/DefinitelyTyped#readme +license: mit +licenses: +- sources: LICENSE + text: " MIT License\r\n\r\n Copyright (c) Microsoft Corporation. All rights + reserved.\r\n\r\n Permission is hereby granted, free of charge, to any person + obtaining a copy\r\n of this software and associated documentation files (the + \"Software\"), to deal\r\n in the Software without restriction, including without + limitation the rights\r\n to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell\r\n copies of the Software, and to permit persons to + whom the Software is\r\n furnished to do so, subject to the following conditions:\r\n\r\n + \ The above copyright notice and this permission notice shall be included in + all\r\n copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE + IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n IMPLIED, + INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n FITNESS + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n AUTHORS + OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n OUT + OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\n + \ SOFTWARE\r\n" +notices: [] diff --git a/.licenses/npm/atob-lite.dep.yml b/.licenses/npm/atob-lite.dep.yml new file mode 100644 index 0000000..3a1356f --- /dev/null +++ b/.licenses/npm/atob-lite.dep.yml @@ -0,0 +1,32 @@ +--- +name: atob-lite +version: 2.0.0 +type: npm +summary: Smallest/simplest possible means of using atob with both Node and browserify +homepage: https://github.com/hughsk/atob-lite +license: other +licenses: +- sources: LICENSE.md + text: | + This software is released under the MIT license: + + Permission is hereby granted, free of charge, to any person obtaining a copy of + this software and associated documentation files (the "Software"), to deal in + the Software without restriction, including without limitation the rights to + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +- sources: README.md + text: MIT. See [LICENSE.md](http://github.com/hughsk/atob-lite/blob/master/LICENSE.md) + for details. +notices: [] diff --git a/.licenses/npm/before-after-hook.dep.yml b/.licenses/npm/before-after-hook.dep.yml new file mode 100644 index 0000000..440fd2f --- /dev/null +++ b/.licenses/npm/before-after-hook.dep.yml @@ -0,0 +1,214 @@ +--- +name: before-after-hook +version: 2.1.0 +type: npm +summary: asynchronous before/error/after hooks for internal functionality +homepage: https://github.com/gr2m/before-after-hook#readme +license: apache-2.0 +licenses: +- sources: LICENSE + text: |2 + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2018 Gregor Martynus and other contributors. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +- sources: README.md + text: "[Apache 2.0](LICENSE)" +notices: [] diff --git a/.licenses/npm/btoa-lite.dep.yml b/.licenses/npm/btoa-lite.dep.yml new file mode 100644 index 0000000..5a6d56f --- /dev/null +++ b/.licenses/npm/btoa-lite.dep.yml @@ -0,0 +1,32 @@ +--- +name: btoa-lite +version: 1.0.0 +type: npm +summary: Smallest/simplest possible means of using btoa with both Node and browserify +homepage: https://github.com/hughsk/btoa-lite +license: other +licenses: +- sources: LICENSE.md + text: | + This software is released under the MIT license: + + Permission is hereby granted, free of charge, to any person obtaining a copy of + this software and associated documentation files (the "Software"), to deal in + the Software without restriction, including without limitation the rights to + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +- sources: README.md + text: MIT. See [LICENSE.md](http://github.com/hughsk/btoa-lite/blob/master/LICENSE.md) + for details. +notices: [] diff --git a/.licenses/npm/cross-spawn.dep.yml b/.licenses/npm/cross-spawn.dep.yml new file mode 100644 index 0000000..0552e4f --- /dev/null +++ b/.licenses/npm/cross-spawn.dep.yml @@ -0,0 +1,34 @@ +--- +name: cross-spawn +version: 6.0.5 +type: npm +summary: Cross platform child_process#spawn and child_process#spawnSync +homepage: https://github.com/moxystudio/node-cross-spawn +license: mit +licenses: +- sources: LICENSE + text: | + The MIT License (MIT) + + Copyright (c) 2018 Made With MOXY Lda + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +- sources: README.md + text: Released under the [MIT License](http://www.opensource.org/licenses/mit-license.php). +notices: [] diff --git a/.licenses/npm/deprecation.dep.yml b/.licenses/npm/deprecation.dep.yml new file mode 100644 index 0000000..12fd7ce --- /dev/null +++ b/.licenses/npm/deprecation.dep.yml @@ -0,0 +1,28 @@ +--- +name: deprecation +version: 2.3.1 +type: npm +summary: Log a deprecation message with stack +homepage: https://github.com/gr2m/deprecation#readme +license: isc +licenses: +- sources: LICENSE + text: | + The ISC License + + Copyright (c) Gregor Martynus and contributors + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR + IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +- sources: README.md + text: "[ISC](LICENSE)" +notices: [] diff --git a/.licenses/npm/end-of-stream.dep.yml b/.licenses/npm/end-of-stream.dep.yml new file mode 100644 index 0000000..71cb829 --- /dev/null +++ b/.licenses/npm/end-of-stream.dep.yml @@ -0,0 +1,34 @@ +--- +name: end-of-stream +version: 1.4.1 +type: npm +summary: Call a callback when a readable/writable/duplex stream has completed or failed. +homepage: https://github.com/mafintosh/end-of-stream +license: mit +licenses: +- sources: LICENSE + text: |- + The MIT License (MIT) + + Copyright (c) 2014 Mathias Buus + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +- sources: README.md + text: MIT +notices: [] diff --git a/.licenses/npm/execa.dep.yml b/.licenses/npm/execa.dep.yml new file mode 100644 index 0000000..1b9d1fe --- /dev/null +++ b/.licenses/npm/execa.dep.yml @@ -0,0 +1,22 @@ +--- +name: execa +version: 1.0.0 +type: npm +summary: A better `child_process` +homepage: https://github.com/sindresorhus/execa#readme +license: mit +licenses: +- sources: license + text: | + MIT License + + Copyright (c) Sindre Sorhus (sindresorhus.com) + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +- sources: readme.md + text: MIT © [Sindre Sorhus](https://sindresorhus.com) +notices: [] diff --git a/.licenses/npm/get-stream.dep.yml b/.licenses/npm/get-stream.dep.yml new file mode 100644 index 0000000..49e1c3f --- /dev/null +++ b/.licenses/npm/get-stream.dep.yml @@ -0,0 +1,22 @@ +--- +name: get-stream +version: 4.1.0 +type: npm +summary: Get a stream as a string, buffer, or array +homepage: https://github.com/sindresorhus/get-stream#readme +license: mit +licenses: +- sources: license + text: | + MIT License + + Copyright (c) Sindre Sorhus (sindresorhus.com) + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +- sources: readme.md + text: MIT © [Sindre Sorhus](https://sindresorhus.com) +notices: [] diff --git a/.licenses/npm/is-plain-object.dep.yml b/.licenses/npm/is-plain-object.dep.yml new file mode 100644 index 0000000..5494d43 --- /dev/null +++ b/.licenses/npm/is-plain-object.dep.yml @@ -0,0 +1,40 @@ +--- +name: is-plain-object +version: 3.0.0 +type: npm +summary: Returns true if an object was created by the `Object` constructor. +homepage: https://github.com/jonschlinkert/is-plain-object +license: mit +licenses: +- sources: LICENSE + text: | + The MIT License (MIT) + + Copyright (c) 2014-2017, Jon Schlinkert. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +- sources: README.md + text: |- + Copyright © 2019, [Jon Schlinkert](https://github.com/jonschlinkert). + Released under the [MIT License](LICENSE). + + *** + + _This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on April 28, 2019._ +notices: [] diff --git a/.licenses/npm/is-stream.dep.yml b/.licenses/npm/is-stream.dep.yml new file mode 100644 index 0000000..5d3afd7 --- /dev/null +++ b/.licenses/npm/is-stream.dep.yml @@ -0,0 +1,34 @@ +--- +name: is-stream +version: 1.1.0 +type: npm +summary: Check if something is a Node.js stream +homepage: https://github.com/sindresorhus/is-stream#readme +license: mit +licenses: +- sources: license + text: | + The MIT License (MIT) + + Copyright (c) Sindre Sorhus (sindresorhus.com) + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +- sources: readme.md + text: MIT © [Sindre Sorhus](https://sindresorhus.com) +notices: [] diff --git a/.licenses/npm/isexe.dep.yml b/.licenses/npm/isexe.dep.yml new file mode 100644 index 0000000..a69a541 --- /dev/null +++ b/.licenses/npm/isexe.dep.yml @@ -0,0 +1,26 @@ +--- +name: isexe +version: 2.0.0 +type: npm +summary: Minimal module to check if a file is executable. +homepage: https://github.com/isaacs/isexe#readme +license: isc +licenses: +- sources: LICENSE + text: | + The ISC License + + Copyright (c) Isaac Z. Schlueter and Contributors + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR + IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +notices: [] diff --git a/.licenses/npm/isobject.dep.yml b/.licenses/npm/isobject.dep.yml new file mode 100644 index 0000000..3172bef --- /dev/null +++ b/.licenses/npm/isobject.dep.yml @@ -0,0 +1,40 @@ +--- +name: isobject +version: 4.0.0 +type: npm +summary: Returns true if the value is an object and not an array or null. +homepage: https://github.com/jonschlinkert/isobject +license: mit +licenses: +- sources: LICENSE + text: |- + The MIT License (MIT) + + Copyright (c) 2014-2017, Jon Schlinkert. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +- sources: README.md + text: |- + Copyright © 2019, [Jon Schlinkert](https://github.com/jonschlinkert). + Released under the [MIT License](LICENSE). + + *** + + _This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on April 28, 2019._ +notices: [] diff --git a/.licenses/npm/lodash.get.dep.yml b/.licenses/npm/lodash.get.dep.yml new file mode 100644 index 0000000..6a6543c --- /dev/null +++ b/.licenses/npm/lodash.get.dep.yml @@ -0,0 +1,58 @@ +--- +name: lodash.get +version: 4.4.2 +type: npm +summary: The lodash method `_.get` exported as a module. +homepage: https://lodash.com/ +license: mit +licenses: +- sources: LICENSE + text: | + Copyright jQuery Foundation and other contributors + + Based on Underscore.js, copyright Jeremy Ashkenas, + DocumentCloud and Investigative Reporters & Editors + + This software consists of voluntary contributions made by many + individuals. For exact contribution history, see the revision history + available at https://github.com/lodash/lodash + + The following license applies to all parts of this software except as + documented below: + + ==== + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + ==== + + Copyright and related rights for sample code are waived via CC0. Sample + code is defined as all source code displayed within the prose of the + documentation. + + CC0: http://creativecommons.org/publicdomain/zero/1.0/ + + ==== + + Files located in the node_modules and vendor directories are externally + maintained libraries used by this software which have their own + licenses; we recommend you read them, as their terms may differ from the + terms above. +notices: [] diff --git a/.licenses/npm/lodash.set.dep.yml b/.licenses/npm/lodash.set.dep.yml new file mode 100644 index 0000000..d6b2724 --- /dev/null +++ b/.licenses/npm/lodash.set.dep.yml @@ -0,0 +1,58 @@ +--- +name: lodash.set +version: 4.3.2 +type: npm +summary: The lodash method `_.set` exported as a module. +homepage: https://lodash.com/ +license: mit +licenses: +- sources: LICENSE + text: | + Copyright jQuery Foundation and other contributors + + Based on Underscore.js, copyright Jeremy Ashkenas, + DocumentCloud and Investigative Reporters & Editors + + This software consists of voluntary contributions made by many + individuals. For exact contribution history, see the revision history + available at https://github.com/lodash/lodash + + The following license applies to all parts of this software except as + documented below: + + ==== + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + ==== + + Copyright and related rights for sample code are waived via CC0. Sample + code is defined as all source code displayed within the prose of the + documentation. + + CC0: http://creativecommons.org/publicdomain/zero/1.0/ + + ==== + + Files located in the node_modules and vendor directories are externally + maintained libraries used by this software which have their own + licenses; we recommend you read them, as their terms may differ from the + terms above. +notices: [] diff --git a/.licenses/npm/lodash.uniq.dep.yml b/.licenses/npm/lodash.uniq.dep.yml new file mode 100644 index 0000000..eb769ca --- /dev/null +++ b/.licenses/npm/lodash.uniq.dep.yml @@ -0,0 +1,58 @@ +--- +name: lodash.uniq +version: 4.5.0 +type: npm +summary: The lodash method `_.uniq` exported as a module. +homepage: https://lodash.com/ +license: mit +licenses: +- sources: LICENSE + text: | + Copyright jQuery Foundation and other contributors + + Based on Underscore.js, copyright Jeremy Ashkenas, + DocumentCloud and Investigative Reporters & Editors + + This software consists of voluntary contributions made by many + individuals. For exact contribution history, see the revision history + available at https://github.com/lodash/lodash + + The following license applies to all parts of this software except as + documented below: + + ==== + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + ==== + + Copyright and related rights for sample code are waived via CC0. Sample + code is defined as all source code displayed within the prose of the + documentation. + + CC0: http://creativecommons.org/publicdomain/zero/1.0/ + + ==== + + Files located in the node_modules and vendor directories are externally + maintained libraries used by this software which have their own + licenses; we recommend you read them, as their terms may differ from the + terms above. +notices: [] diff --git a/.licenses/npm/macos-release.dep.yml b/.licenses/npm/macos-release.dep.yml new file mode 100644 index 0000000..b32051c --- /dev/null +++ b/.licenses/npm/macos-release.dep.yml @@ -0,0 +1,22 @@ +--- +name: macos-release +version: 2.3.0 +type: npm +summary: Get the name and version of a macOS release from the Darwin version +homepage: https://github.com/sindresorhus/macos-release#readme +license: mit +licenses: +- sources: license + text: | + MIT License + + Copyright (c) Sindre Sorhus (sindresorhus.com) + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +- sources: readme.md + text: MIT © [Sindre Sorhus](https://sindresorhus.com) +notices: [] diff --git a/.licenses/npm/nice-try.dep.yml b/.licenses/npm/nice-try.dep.yml new file mode 100644 index 0000000..3eb51b8 --- /dev/null +++ b/.licenses/npm/nice-try.dep.yml @@ -0,0 +1,32 @@ +--- +name: nice-try +version: 1.0.5 +type: npm +summary: Tries to execute a function and discards any error that occurs +homepage: https://github.com/electerious/nice-try +license: mit +licenses: +- sources: LICENSE + text: | + The MIT License (MIT) + + Copyright (c) 2018 Tobias Reich + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +notices: [] diff --git a/.licenses/npm/node-fetch.dep.yml b/.licenses/npm/node-fetch.dep.yml new file mode 100644 index 0000000..109c6d0 --- /dev/null +++ b/.licenses/npm/node-fetch.dep.yml @@ -0,0 +1,52 @@ +--- +name: node-fetch +version: 2.6.0 +type: npm +summary: A light-weight module that brings window.fetch to node.js +homepage: https://github.com/bitinn/node-fetch +license: mit +licenses: +- sources: LICENSE.md + text: |+ + The MIT License (MIT) + + Copyright (c) 2016 David Frank + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + +- sources: README.md + text: |- + MIT + + [npm-image]: https://flat.badgen.net/npm/v/node-fetch + [npm-url]: https://www.npmjs.com/package/node-fetch + [travis-image]: https://flat.badgen.net/travis/bitinn/node-fetch + [travis-url]: https://travis-ci.org/bitinn/node-fetch + [codecov-image]: https://flat.badgen.net/codecov/c/github/bitinn/node-fetch/master + [codecov-url]: https://codecov.io/gh/bitinn/node-fetch + [install-size-image]: https://flat.badgen.net/packagephobia/install/node-fetch + [install-size-url]: https://packagephobia.now.sh/result?p=node-fetch + [whatwg-fetch]: https://fetch.spec.whatwg.org/ + [response-init]: https://fetch.spec.whatwg.org/#responseinit + [node-readable]: https://nodejs.org/api/stream.html#stream_readable_streams + [mdn-headers]: https://developer.mozilla.org/en-US/docs/Web/API/Headers + [LIMITS.md]: https://github.com/bitinn/node-fetch/blob/master/LIMITS.md + [ERROR-HANDLING.md]: https://github.com/bitinn/node-fetch/blob/master/ERROR-HANDLING.md + [UPGRADE-GUIDE.md]: https://github.com/bitinn/node-fetch/blob/master/UPGRADE-GUIDE.md +notices: [] diff --git a/.licenses/npm/npm-run-path.dep.yml b/.licenses/npm/npm-run-path.dep.yml new file mode 100644 index 0000000..be3c2bf --- /dev/null +++ b/.licenses/npm/npm-run-path.dep.yml @@ -0,0 +1,34 @@ +--- +name: npm-run-path +version: 2.0.2 +type: npm +summary: Get your PATH prepended with locally installed binaries +homepage: https://github.com/sindresorhus/npm-run-path#readme +license: mit +licenses: +- sources: license + text: | + The MIT License (MIT) + + Copyright (c) Sindre Sorhus (sindresorhus.com) + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +- sources: readme.md + text: MIT © [Sindre Sorhus](https://sindresorhus.com) +notices: [] diff --git a/.licenses/npm/octokit-pagination-methods.dep.yml b/.licenses/npm/octokit-pagination-methods.dep.yml new file mode 100644 index 0000000..b4c8a78 --- /dev/null +++ b/.licenses/npm/octokit-pagination-methods.dep.yml @@ -0,0 +1,35 @@ +--- +name: octokit-pagination-methods +version: 1.1.0 +type: npm +summary: Legacy Octokit pagination methods from v15 +homepage: https://github.com/gr2m/octokit-pagination-methods#readme +license: mit +licenses: +- sources: LICENSE + text: | + The MIT License + + Copyright (c) 2012 Cloud9 IDE, Inc. (Mike de Boer) + Copyright (c) 2017-2018 Octokit contributors + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +- sources: README.md + text: "[MIT](LICENSE)" +notices: [] diff --git a/.licenses/npm/once.dep.yml b/.licenses/npm/once.dep.yml new file mode 100644 index 0000000..7cf525a --- /dev/null +++ b/.licenses/npm/once.dep.yml @@ -0,0 +1,26 @@ +--- +name: once +version: 1.4.0 +type: npm +summary: Run a function exactly one time +homepage: https://github.com/isaacs/once#readme +license: isc +licenses: +- sources: LICENSE + text: | + The ISC License + + Copyright (c) Isaac Z. Schlueter and Contributors + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR + IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +notices: [] diff --git a/.licenses/npm/os-name.dep.yml b/.licenses/npm/os-name.dep.yml new file mode 100644 index 0000000..9be0e25 --- /dev/null +++ b/.licenses/npm/os-name.dep.yml @@ -0,0 +1,22 @@ +--- +name: os-name +version: 3.1.0 +type: npm +summary: 'Get the name of the current operating system. Example: macOS Sierra' +homepage: https://github.com/sindresorhus/os-name#readme +license: mit +licenses: +- sources: license + text: | + MIT License + + Copyright (c) Sindre Sorhus (sindresorhus.com) + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +- sources: readme.md + text: MIT © [Sindre Sorhus](https://sindresorhus.com) +notices: [] diff --git a/.licenses/npm/p-finally.dep.yml b/.licenses/npm/p-finally.dep.yml new file mode 100644 index 0000000..2b41f24 --- /dev/null +++ b/.licenses/npm/p-finally.dep.yml @@ -0,0 +1,35 @@ +--- +name: p-finally +version: 1.0.0 +type: npm +summary: "`Promise#finally()` ponyfill - Invoked when the promise is settled regardless + of outcome" +homepage: https://github.com/sindresorhus/p-finally#readme +license: mit +licenses: +- sources: license + text: | + The MIT License (MIT) + + Copyright (c) Sindre Sorhus (sindresorhus.com) + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +- sources: readme.md + text: MIT © [Sindre Sorhus](https://sindresorhus.com) +notices: [] diff --git a/.licenses/npm/path-key.dep.yml b/.licenses/npm/path-key.dep.yml new file mode 100644 index 0000000..c2674e8 --- /dev/null +++ b/.licenses/npm/path-key.dep.yml @@ -0,0 +1,34 @@ +--- +name: path-key +version: 2.0.1 +type: npm +summary: Get the PATH environment variable key cross-platform +homepage: https://github.com/sindresorhus/path-key#readme +license: mit +licenses: +- sources: license + text: | + The MIT License (MIT) + + Copyright (c) Sindre Sorhus (sindresorhus.com) + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +- sources: readme.md + text: MIT © [Sindre Sorhus](https://sindresorhus.com) +notices: [] diff --git a/.licenses/npm/pump.dep.yml b/.licenses/npm/pump.dep.yml new file mode 100644 index 0000000..02c5cf6 --- /dev/null +++ b/.licenses/npm/pump.dep.yml @@ -0,0 +1,34 @@ +--- +name: pump +version: 3.0.0 +type: npm +summary: pipe streams together and close all of them if one of them closes +homepage: https://github.com/mafintosh/pump#readme +license: mit +licenses: +- sources: LICENSE + text: |- + The MIT License (MIT) + + Copyright (c) 2014 Mathias Buus + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +- sources: README.md + text: MIT +notices: [] diff --git a/.licenses/npm/semver-5.7.0.dep.yml b/.licenses/npm/semver-5.7.0.dep.yml new file mode 100644 index 0000000..a07ada5 --- /dev/null +++ b/.licenses/npm/semver-5.7.0.dep.yml @@ -0,0 +1,26 @@ +--- +name: semver +version: 5.7.0 +type: npm +summary: The semantic version parser used by npm. +homepage: https://github.com/npm/node-semver#readme +license: isc +licenses: +- sources: LICENSE + text: | + The ISC License + + Copyright (c) Isaac Z. Schlueter and Contributors + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR + IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +notices: [] diff --git a/.licenses/npm/semver-6.1.2.dep.yml b/.licenses/npm/semver-6.1.2.dep.yml new file mode 100644 index 0000000..761a3f3 --- /dev/null +++ b/.licenses/npm/semver-6.1.2.dep.yml @@ -0,0 +1,26 @@ +--- +name: semver +version: 6.1.2 +type: npm +summary: The semantic version parser used by npm. +homepage: https://github.com/npm/node-semver#readme +license: isc +licenses: +- sources: LICENSE + text: | + The ISC License + + Copyright (c) Isaac Z. Schlueter and Contributors + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR + IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +notices: [] diff --git a/.licenses/npm/shebang-command.dep.yml b/.licenses/npm/shebang-command.dep.yml new file mode 100644 index 0000000..2b39e74 --- /dev/null +++ b/.licenses/npm/shebang-command.dep.yml @@ -0,0 +1,34 @@ +--- +name: shebang-command +version: 1.2.0 +type: npm +summary: Get the command from a shebang +homepage: https://github.com/kevva/shebang-command#readme +license: mit +licenses: +- sources: license + text: | + The MIT License (MIT) + + Copyright (c) Kevin Martensson (github.com/kevva) + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +- sources: readme.md + text: MIT © [Kevin Martensson](http://github.com/kevva) +notices: [] diff --git a/.licenses/npm/shebang-regex.dep.yml b/.licenses/npm/shebang-regex.dep.yml new file mode 100644 index 0000000..bfed9cf --- /dev/null +++ b/.licenses/npm/shebang-regex.dep.yml @@ -0,0 +1,34 @@ +--- +name: shebang-regex +version: 1.0.0 +type: npm +summary: Regular expression for matching a shebang +homepage: https://github.com/sindresorhus/shebang-regex#readme +license: mit +licenses: +- sources: license + text: | + The MIT License (MIT) + + Copyright (c) Sindre Sorhus (sindresorhus.com) + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +- sources: readme.md + text: MIT © [Sindre Sorhus](http://sindresorhus.com) +notices: [] diff --git a/.licenses/npm/signal-exit.dep.yml b/.licenses/npm/signal-exit.dep.yml new file mode 100644 index 0000000..d3219be --- /dev/null +++ b/.licenses/npm/signal-exit.dep.yml @@ -0,0 +1,27 @@ +--- +name: signal-exit +version: 3.0.2 +type: npm +summary: when you want to fire an event no matter how a process exits. +homepage: https://github.com/tapjs/signal-exit +license: isc +licenses: +- sources: LICENSE.txt + text: | + The ISC License + + Copyright (c) 2015, Contributors + + Permission to use, copy, modify, and/or distribute this software + for any purpose with or without fee is hereby granted, provided + that the above copyright notice and this permission notice + appear in all copies. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES + OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE + LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES + OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +notices: [] diff --git a/.licenses/npm/strip-eof.dep.yml b/.licenses/npm/strip-eof.dep.yml new file mode 100644 index 0000000..a3379a9 --- /dev/null +++ b/.licenses/npm/strip-eof.dep.yml @@ -0,0 +1,34 @@ +--- +name: strip-eof +version: 1.0.0 +type: npm +summary: Strip the End-Of-File (EOF) character from a string/buffer +homepage: https://github.com/sindresorhus/strip-eof#readme +license: mit +licenses: +- sources: license + text: | + The MIT License (MIT) + + Copyright (c) Sindre Sorhus (sindresorhus.com) + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +- sources: readme.md + text: MIT © [Sindre Sorhus](http://sindresorhus.com) +notices: [] diff --git a/.licenses/npm/tunnel.dep.yml b/.licenses/npm/tunnel.dep.yml new file mode 100644 index 0000000..9a7111d --- /dev/null +++ b/.licenses/npm/tunnel.dep.yml @@ -0,0 +1,35 @@ +--- +name: tunnel +version: 0.0.6 +type: npm +summary: Node HTTP/HTTPS Agents for tunneling proxies +homepage: https://github.com/koichik/node-tunnel/ +license: mit +licenses: +- sources: LICENSE + text: | + The MIT License (MIT) + + Copyright (c) 2012 Koichi Kobayashi + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +- sources: README.md + text: Licensed under the [MIT](https://github.com/koichik/node-tunnel/blob/master/LICENSE) + license. +notices: [] diff --git a/.licenses/npm/universal-user-agent-2.1.0.dep.yml b/.licenses/npm/universal-user-agent-2.1.0.dep.yml new file mode 100644 index 0000000..5858b9d --- /dev/null +++ b/.licenses/npm/universal-user-agent-2.1.0.dep.yml @@ -0,0 +1,20 @@ +--- +name: universal-user-agent +version: 2.1.0 +type: npm +summary: Get a user agent string in both browser and node +homepage: https://github.com/gr2m/universal-user-agent#readme +license: other +licenses: +- sources: LICENSE.md + text: | + # [ISC License](https://spdx.org/licenses/ISC) + + Copyright (c) 2018, Gregor Martynus (https://github.com/gr2m) + + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +- sources: README.md + text: "[ISC](LICENSE.md)" +notices: [] diff --git a/.licenses/npm/universal-user-agent-4.0.0.dep.yml b/.licenses/npm/universal-user-agent-4.0.0.dep.yml new file mode 100644 index 0000000..10611b3 --- /dev/null +++ b/.licenses/npm/universal-user-agent-4.0.0.dep.yml @@ -0,0 +1,20 @@ +--- +name: universal-user-agent +version: 4.0.0 +type: npm +summary: Get a user agent string in both browser and node +homepage: https://github.com/gr2m/universal-user-agent#readme +license: other +licenses: +- sources: LICENSE.md + text: | + # [ISC License](https://spdx.org/licenses/ISC) + + Copyright (c) 2018, Gregor Martynus (https://github.com/gr2m) + + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +- sources: README.md + text: "[ISC](LICENSE.md)" +notices: [] diff --git a/.licenses/npm/uuid.dep.yml b/.licenses/npm/uuid.dep.yml new file mode 100644 index 0000000..b3703bc --- /dev/null +++ b/.licenses/npm/uuid.dep.yml @@ -0,0 +1,39 @@ +--- +name: uuid +version: 3.3.2 +type: npm +summary: RFC4122 (v1, v4, and v5) UUIDs +homepage: https://github.com/kelektiv/node-uuid#readme +license: mit +licenses: +- sources: LICENSE.md + text: | + The MIT License (MIT) + + Copyright (c) 2010-2016 Robert Kieffer and other contributors + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +notices: +- sources: AUTHORS + text: |- + Robert Kieffer + Christoph Tavan + AJ ONeal + Vincent Voyer + Roman Shtylman diff --git a/.licenses/npm/which.dep.yml b/.licenses/npm/which.dep.yml new file mode 100644 index 0000000..699ce66 --- /dev/null +++ b/.licenses/npm/which.dep.yml @@ -0,0 +1,27 @@ +--- +name: which +version: 1.3.1 +type: npm +summary: Like which(1) unix command. Find the first instance of an executable in the + PATH. +homepage: https://github.com/isaacs/node-which#readme +license: isc +licenses: +- sources: LICENSE + text: | + The ISC License + + Copyright (c) Isaac Z. Schlueter and Contributors + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR + IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +notices: [] diff --git a/.licenses/npm/windows-release.dep.yml b/.licenses/npm/windows-release.dep.yml new file mode 100644 index 0000000..e6451ae --- /dev/null +++ b/.licenses/npm/windows-release.dep.yml @@ -0,0 +1,23 @@ +--- +name: windows-release +version: 3.2.0 +type: npm +summary: 'Get the name of a Windows version from the release number: `5.1.2600` → + `XP`' +homepage: https://github.com/sindresorhus/windows-release#readme +license: mit +licenses: +- sources: license + text: | + MIT License + + Copyright (c) Sindre Sorhus (sindresorhus.com) + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +- sources: readme.md + text: MIT © [Sindre Sorhus](https://sindresorhus.com) +notices: [] diff --git a/.licenses/npm/wrappy.dep.yml b/.licenses/npm/wrappy.dep.yml new file mode 100644 index 0000000..2a532ec --- /dev/null +++ b/.licenses/npm/wrappy.dep.yml @@ -0,0 +1,26 @@ +--- +name: wrappy +version: 1.0.2 +type: npm +summary: Callback wrapping utility +homepage: https://github.com/npm/wrappy +license: isc +licenses: +- sources: LICENSE + text: | + The ISC License + + Copyright (c) Isaac Z. Schlueter and Contributors + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR + IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +notices: [] From c6fd00ceb9747fb23ffdf72987450a2664414867 Mon Sep 17 00:00:00 2001 From: Thomas Boop <52323235+thboop@users.noreply.github.com> Date: Thu, 1 Oct 2020 12:03:22 -0400 Subject: [PATCH 24/55] Swap to env files (#200) * Swap to env files * revert to old method for tests * disable executing of commands during tests * bump package.json @actions/core version --- .licenses/npm/@actions/core-1.2.2.dep.yml | 30 ------ .licenses/npm/@actions/core-1.2.6.dep.yml | 20 ++++ __tests__/authutil.test.ts | 3 + __tests__/installer.test.ts | 6 +- dist/index.js | 123 +++++++++++++++++++--- package-lock.json | 6 +- package.json | 2 +- 7 files changed, 143 insertions(+), 47 deletions(-) delete mode 100644 .licenses/npm/@actions/core-1.2.2.dep.yml create mode 100644 .licenses/npm/@actions/core-1.2.6.dep.yml diff --git a/.licenses/npm/@actions/core-1.2.2.dep.yml b/.licenses/npm/@actions/core-1.2.2.dep.yml deleted file mode 100644 index 92b8b02..0000000 --- a/.licenses/npm/@actions/core-1.2.2.dep.yml +++ /dev/null @@ -1,30 +0,0 @@ ---- -name: "@actions/core" -version: 1.2.2 -type: npm -summary: Actions core lib -homepage: https://github.com/actions/toolkit/tree/master/packages/core -license: mit -licenses: -- sources: Auto-generated MIT license text - text: | - MIT License - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. -notices: [] diff --git a/.licenses/npm/@actions/core-1.2.6.dep.yml b/.licenses/npm/@actions/core-1.2.6.dep.yml new file mode 100644 index 0000000..b1152f5 --- /dev/null +++ b/.licenses/npm/@actions/core-1.2.6.dep.yml @@ -0,0 +1,20 @@ +--- +name: "@actions/core" +version: 1.2.6 +type: npm +summary: Actions core lib +homepage: https://github.com/actions/toolkit/tree/main/packages/core +license: mit +licenses: +- sources: LICENSE.md + text: |- + The MIT License (MIT) + + Copyright 2019 GitHub + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +notices: [] diff --git a/__tests__/authutil.test.ts b/__tests__/authutil.test.ts index 85dcb31..a57a317 100644 --- a/__tests__/authutil.test.ts +++ b/__tests__/authutil.test.ts @@ -20,6 +20,8 @@ describe('authutil tests', () => { .toString(36) .substring(7) ); + console.log('::stop-commands::stoptoken'); // Disable executing of runner commands when running tests in actions + process.env['GITHUB_ENV'] = ''; // Stub out Environment file functionality so we can verify it writes to standard out (toolkit is backwards compatible) const tempDir = path.join(_runnerDir, randPath, 'temp'); await io.rmRF(tempDir); await io.mkdirP(tempDir); @@ -61,6 +63,7 @@ describe('authutil tests', () => { if (_runnerDir) { await io.rmRF(_runnerDir); } + console.log('::stoptoken::'); // Re-enable executing of runner commands when running tests in actions }, 100000); function readRcFile(rcFile: string) { diff --git a/__tests__/installer.test.ts b/__tests__/installer.test.ts index 6f3a411..dbbc4b4 100644 --- a/__tests__/installer.test.ts +++ b/__tests__/installer.test.ts @@ -42,6 +42,8 @@ describe('setup-node', () => { beforeEach(() => { // @actions/core + console.log('::stop-commands::stoptoken'); // Disable executing of runner commands when running tests in actions + process.env['GITHUB_PATH'] = ''; // Stub out ENV file functionality so we can verify it writes to standard out inputs = {}; inSpy = jest.spyOn(core, 'getInput'); inSpy.mockImplementation(name => inputs[name]); @@ -102,7 +104,9 @@ describe('setup-node', () => { //jest.restoreAllMocks(); }); - afterAll(async () => {}, 100000); + afterAll(async () => { + console.log('::stoptoken::'); // Re-enable executing of runner commands when running tests in actions + }, 100000); //-------------------------------------------------- // Manifest find tests diff --git a/dist/index.js b/dist/index.js index 481183e..e0e73c5 100644 --- a/dist/index.js +++ b/dist/index.js @@ -3028,6 +3028,32 @@ const windowsRelease = release => { module.exports = windowsRelease; +/***/ }), + +/***/ 82: +/***/ (function(__unusedmodule, exports) { + +"use strict"; + +// We use any as a valid input type +/* eslint-disable @typescript-eslint/no-explicit-any */ +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * Sanitizes an input into a string so it can be passed into issueCommand safely + * @param input input to sanitize into a string + */ +function toCommandValue(input) { + if (input === null || input === undefined) { + return ''; + } + else if (typeof input === 'string' || input instanceof String) { + return input; + } + return JSON.stringify(input); +} +exports.toCommandValue = toCommandValue; +//# sourceMappingURL=utils.js.map + /***/ }), /***/ 87: @@ -3037,6 +3063,42 @@ module.exports = require("os"); /***/ }), +/***/ 102: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + +// For internal use, subject to change. +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; + result["default"] = mod; + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +// We use any as a valid input type +/* eslint-disable @typescript-eslint/no-explicit-any */ +const fs = __importStar(__webpack_require__(747)); +const os = __importStar(__webpack_require__(87)); +const utils_1 = __webpack_require__(82); +function issueCommand(command, message) { + const filePath = process.env[`GITHUB_${command}`]; + if (!filePath) { + throw new Error(`Unable to find environment variable for file command ${command}`); + } + if (!fs.existsSync(filePath)) { + throw new Error(`Missing file at path: ${filePath}`); + } + fs.appendFileSync(filePath, `${utils_1.toCommandValue(message)}${os.EOL}`, { + encoding: 'utf8' + }); +} +exports.issueCommand = issueCommand; +//# sourceMappingURL=file-command.js.map + +/***/ }), + /***/ 108: /***/ (function(module, __unusedexports, __webpack_require__) { @@ -8396,6 +8458,7 @@ var __importStar = (this && this.__importStar) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); const os = __importStar(__webpack_require__(87)); +const utils_1 = __webpack_require__(82); /** * Commands * @@ -8450,13 +8513,13 @@ class Command { } } function escapeData(s) { - return (s || '') + return utils_1.toCommandValue(s) .replace(/%/g, '%25') .replace(/\r/g, '%0D') .replace(/\n/g, '%0A'); } function escapeProperty(s) { - return (s || '') + return utils_1.toCommandValue(s) .replace(/%/g, '%25') .replace(/\r/g, '%0D') .replace(/\n/g, '%0A') @@ -10381,6 +10444,8 @@ var __importStar = (this && this.__importStar) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); const command_1 = __webpack_require__(431); +const file_command_1 = __webpack_require__(102); +const utils_1 = __webpack_require__(82); const os = __importStar(__webpack_require__(87)); const path = __importStar(__webpack_require__(622)); /** @@ -10403,11 +10468,21 @@ var ExitCode; /** * Sets env variable for this action and future actions in the job * @param name the name of the variable to set - * @param val the value of the variable + * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify */ +// eslint-disable-next-line @typescript-eslint/no-explicit-any function exportVariable(name, val) { - process.env[name] = val; - command_1.issueCommand('set-env', { name }, val); + const convertedVal = utils_1.toCommandValue(val); + process.env[name] = convertedVal; + const filePath = process.env['GITHUB_ENV'] || ''; + if (filePath) { + const delimiter = '_GitHubActionsFileCommandDelimeter_'; + const commandValue = `${name}<<${delimiter}${os.EOL}${convertedVal}${os.EOL}${delimiter}`; + file_command_1.issueCommand('ENV', commandValue); + } + else { + command_1.issueCommand('set-env', { name }, convertedVal); + } } exports.exportVariable = exportVariable; /** @@ -10423,7 +10498,13 @@ exports.setSecret = setSecret; * @param inputPath */ function addPath(inputPath) { - command_1.issueCommand('add-path', {}, inputPath); + const filePath = process.env['GITHUB_PATH'] || ''; + if (filePath) { + file_command_1.issueCommand('PATH', inputPath); + } + else { + command_1.issueCommand('add-path', {}, inputPath); + } process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`; } exports.addPath = addPath; @@ -10446,12 +10527,22 @@ exports.getInput = getInput; * Sets the value of an output. * * @param name name of the output to set - * @param value value to store + * @param value value to store. Non-string values will be converted to a string via JSON.stringify */ +// eslint-disable-next-line @typescript-eslint/no-explicit-any function setOutput(name, value) { command_1.issueCommand('set-output', { name }, value); } exports.setOutput = setOutput; +/** + * Enables or disables the echoing of commands into stdout for the rest of the step. + * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set. + * + */ +function setCommandEcho(enabled) { + command_1.issue('echo', enabled ? 'on' : 'off'); +} +exports.setCommandEcho = setCommandEcho; //----------------------------------------------------------------------- // Results //----------------------------------------------------------------------- @@ -10468,6 +10559,13 @@ exports.setFailed = setFailed; //----------------------------------------------------------------------- // Logging Commands //----------------------------------------------------------------------- +/** + * Gets whether Actions Step Debug is on or not + */ +function isDebug() { + return process.env['RUNNER_DEBUG'] === '1'; +} +exports.isDebug = isDebug; /** * Writes debug message to user log * @param message debug message @@ -10478,18 +10576,18 @@ function debug(message) { exports.debug = debug; /** * Adds an error issue - * @param message error issue message + * @param message error issue message. Errors will be converted to string via toString() */ function error(message) { - command_1.issue('error', message); + command_1.issue('error', message instanceof Error ? message.toString() : message); } exports.error = error; /** * Adds an warning issue - * @param message warning issue message + * @param message warning issue message. Errors will be converted to string via toString() */ function warning(message) { - command_1.issue('warning', message); + command_1.issue('warning', message instanceof Error ? message.toString() : message); } exports.warning = warning; /** @@ -10547,8 +10645,9 @@ exports.group = group; * Saves state for current action, the state can only be retrieved by this action's post job execution. * * @param name name of the state to store - * @param value value to store + * @param value value to store. Non-string values will be converted to a string via JSON.stringify */ +// eslint-disable-next-line @typescript-eslint/no-explicit-any function saveState(name, value) { command_1.issueCommand('save-state', { name }, value); } diff --git a/package-lock.json b/package-lock.json index be7fec2..10f7faa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,9 +5,9 @@ "requires": true, "dependencies": { "@actions/core": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.2.2.tgz", - "integrity": "sha512-IbCx7oefq+Gi6FWbSs2Fnw8VkEI6Y4gvjrYprY3RV//ksq/KPMlClOerJ4jRosyal6zkUIc8R9fS/cpRMlGClg==" + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.2.6.tgz", + "integrity": "sha512-ZQYitnqiyBc3D+k7LsgSBmMDVkOVidaagDG7j3fOym77jNunWRuYx7VSHa9GNfFZh+zh61xsCjRj4JxMZlDqTA==" }, "@actions/exec": { "version": "1.0.4", diff --git a/package.json b/package.json index 9a3f1c5..44f8dda 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "author": "GitHub", "license": "MIT", "dependencies": { - "@actions/core": "^1.2.2", + "@actions/core": "^1.2.6", "@actions/exec": "^1.0.3", "@actions/github": "^1.1.0", "@actions/http-client": "^1.0.6", From 8dde5bc0043686bf55f5e243c3756c418eb90398 Mon Sep 17 00:00:00 2001 From: Andres Vargas Date: Wed, 21 Oct 2020 18:14:34 -0500 Subject: [PATCH 25/55] adding test for NODE_AUTH_TOKEN overwritten --- __tests__/authutil.test.ts | 13 ++++++++++++- src/authutil.ts | 2 +- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/__tests__/authutil.test.ts b/__tests__/authutil.test.ts index a57a317..963ab8f 100644 --- a/__tests__/authutil.test.ts +++ b/__tests__/authutil.test.ts @@ -122,5 +122,16 @@ describe('authutil tests', () => { let rc = readRcFile(rcFile); expect(rc['registry']).toBe('https://registry.npmjs.org/'); expect(rc['always-auth']).toBe('true'); - }); + }) + it('It is already set the NODE_AUTH_TOKEN export it ', async ()=> { + process.env.NODE_AUTH_TOKEN='foobar'; + await auth.configAuthentication('npm.pkg.github.com', 'false'); + expect(fs.statSync(rcFile)).toBeDefined(); + let rc = readRcFile(rcFile); + expect(rc['@ownername:registry']).toBe('npm.pkg.github.com/'); + expect(rc['always-auth']).toBe('false'); + dbg(`${JSON.stringify(rc)}`); + expect(process.env.NODE_AUTH_TOKEN).toEqual('foobar'); + + }) }); diff --git a/src/authutil.ts b/src/authutil.ts index 07e0b24..fe7775a 100644 --- a/src/authutil.ts +++ b/src/authutil.ts @@ -54,5 +54,5 @@ function writeRegistryToFile( fs.writeFileSync(fileLocation, newContents); core.exportVariable('NPM_CONFIG_USERCONFIG', fileLocation); // Export empty node_auth_token so npm doesn't complain about not being able to find it - core.exportVariable('NODE_AUTH_TOKEN', 'XXXXX-XXXXX-XXXXX-XXXXX'); + core.exportVariable('NODE_AUTH_TOKEN', process.env.NODE_AUTH_TOKEN || 'XXXXX-XXXXX-XXXXX-XXXXX'); } From a600caf7ccd6d2de82cc7a6c1eaf915616d1b883 Mon Sep 17 00:00:00 2001 From: Andres Vargas Date: Wed, 21 Oct 2020 18:20:47 -0500 Subject: [PATCH 26/55] remove debug --- __tests__/authutil.test.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/__tests__/authutil.test.ts b/__tests__/authutil.test.ts index 963ab8f..7910935 100644 --- a/__tests__/authutil.test.ts +++ b/__tests__/authutil.test.ts @@ -130,7 +130,6 @@ describe('authutil tests', () => { let rc = readRcFile(rcFile); expect(rc['@ownername:registry']).toBe('npm.pkg.github.com/'); expect(rc['always-auth']).toBe('false'); - dbg(`${JSON.stringify(rc)}`); expect(process.env.NODE_AUTH_TOKEN).toEqual('foobar'); }) From 5da2d61209fb5ab624f8b30ec4fb26957f5f3b37 Mon Sep 17 00:00:00 2001 From: Andres Vargas Date: Wed, 21 Oct 2020 18:21:28 -0500 Subject: [PATCH 27/55] remove space --- __tests__/authutil.test.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/__tests__/authutil.test.ts b/__tests__/authutil.test.ts index 7910935..110cbbe 100644 --- a/__tests__/authutil.test.ts +++ b/__tests__/authutil.test.ts @@ -131,6 +131,5 @@ describe('authutil tests', () => { expect(rc['@ownername:registry']).toBe('npm.pkg.github.com/'); expect(rc['always-auth']).toBe('false'); expect(process.env.NODE_AUTH_TOKEN).toEqual('foobar'); - }) }); From 14e150d2b14fabd9056bb0455908f4553afb6961 Mon Sep 17 00:00:00 2001 From: Andres Vargas Date: Wed, 21 Oct 2020 18:22:21 -0500 Subject: [PATCH 28/55] update changes --- src/authutil.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/authutil.ts b/src/authutil.ts index fe7775a..bdfb00c 100644 --- a/src/authutil.ts +++ b/src/authutil.ts @@ -54,5 +54,8 @@ function writeRegistryToFile( fs.writeFileSync(fileLocation, newContents); core.exportVariable('NPM_CONFIG_USERCONFIG', fileLocation); // Export empty node_auth_token so npm doesn't complain about not being able to find it - core.exportVariable('NODE_AUTH_TOKEN', process.env.NODE_AUTH_TOKEN || 'XXXXX-XXXXX-XXXXX-XXXXX'); + core.exportVariable( + 'NODE_AUTH_TOKEN', + process.env.NODE_AUTH_TOKEN || 'XXXXX-XXXXX-XXXXX-XXXXX' + ); } From f4215cc0e06402b8ce25037e54dde2c7e1c0306c Mon Sep 17 00:00:00 2001 From: Andres Vargas Date: Wed, 21 Oct 2020 18:31:20 -0500 Subject: [PATCH 29/55] fix format --- __tests__/authutil.test.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/__tests__/authutil.test.ts b/__tests__/authutil.test.ts index 110cbbe..1ec4e1e 100644 --- a/__tests__/authutil.test.ts +++ b/__tests__/authutil.test.ts @@ -122,14 +122,14 @@ describe('authutil tests', () => { let rc = readRcFile(rcFile); expect(rc['registry']).toBe('https://registry.npmjs.org/'); expect(rc['always-auth']).toBe('true'); - }) - it('It is already set the NODE_AUTH_TOKEN export it ', async ()=> { - process.env.NODE_AUTH_TOKEN='foobar'; + }); + it('It is already set the NODE_AUTH_TOKEN export it ', async () => { + process.env.NODE_AUTH_TOKEN = 'foobar'; await auth.configAuthentication('npm.pkg.github.com', 'false'); expect(fs.statSync(rcFile)).toBeDefined(); let rc = readRcFile(rcFile); expect(rc['@ownername:registry']).toBe('npm.pkg.github.com/'); expect(rc['always-auth']).toBe('false'); expect(process.env.NODE_AUTH_TOKEN).toEqual('foobar'); - }) + }); }); From 26a6dcb73b5940e53340c1062e3149742812827c Mon Sep 17 00:00:00 2001 From: Andres Vargas Date: Wed, 21 Oct 2020 18:34:14 -0500 Subject: [PATCH 30/55] update the index file --- dist/index.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dist/index.js b/dist/index.js index e0e73c5..30c7a0c 100644 --- a/dist/index.js +++ b/dist/index.js @@ -4794,7 +4794,7 @@ function writeRegistryToFile(registryUrl, fileLocation, alwaysAuth) { fs.writeFileSync(fileLocation, newContents); core.exportVariable('NPM_CONFIG_USERCONFIG', fileLocation); // Export empty node_auth_token so npm doesn't complain about not being able to find it - core.exportVariable('NODE_AUTH_TOKEN', 'XXXXX-XXXXX-XXXXX-XXXXX'); + core.exportVariable('NODE_AUTH_TOKEN', process.env.NODE_AUTH_TOKEN || 'XXXXX-XXXXX-XXXXX-XXXXX'); } //# sourceMappingURL=authutil.js.map @@ -4810,7 +4810,7 @@ module.exports = require("https"); /***/ 215: /***/ (function(module) { -module.exports = {"name":"@octokit/rest","version":"16.38.1","publishConfig":{"access":"public"},"description":"GitHub REST API client for Node.js","keywords":["octokit","github","rest","api-client"],"author":"Gregor Martynus (https://github.com/gr2m)","contributors":[{"name":"Mike de Boer","email":"info@mikedeboer.nl"},{"name":"Fabian Jakobs","email":"fabian@c9.io"},{"name":"Joe Gallo","email":"joe@brassafrax.com"},{"name":"Gregor Martynus","url":"https://github.com/gr2m"}],"repository":"https://github.com/octokit/rest.js","dependencies":{"@octokit/auth-token":"^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"},"devDependencies":{"@gimenete/type-writer":"^0.1.3","@octokit/auth":"^1.1.1","@octokit/fixtures-server":"^5.0.6","@octokit/graphql":"^4.2.0","@types/node":"^13.1.0","bundlesize":"^0.18.0","chai":"^4.1.2","compression-webpack-plugin":"^3.1.0","cypress":"^3.0.0","glob":"^7.1.2","http-proxy-agent":"^3.0.0","lodash.camelcase":"^4.3.0","lodash.merge":"^4.6.1","lodash.upperfirst":"^4.3.1","mkdirp":"^0.5.1","mocha":"^6.0.0","mustache":"^4.0.0","nock":"^11.3.3","npm-run-all":"^4.1.2","nyc":"^15.0.0","prettier":"^1.14.2","proxy":"^1.0.0","semantic-release":"^16.0.0","sinon":"^8.0.0","sinon-chai":"^3.0.0","sort-keys":"^4.0.0","string-to-arraybuffer":"^1.0.0","string-to-jsdoc-comment":"^1.0.0","typescript":"^3.3.1","webpack":"^4.0.0","webpack-bundle-analyzer":"^3.0.0","webpack-cli":"^3.0.0"},"types":"index.d.ts","scripts":{"coverage":"nyc report --reporter=html && open coverage/index.html","lint":"prettier --check '{lib,plugins,scripts,test}/**/*.{js,json,ts}' 'docs/*.{js,json}' 'docs/src/**/*' index.js README.md package.json","lint:fix":"prettier --write '{lib,plugins,scripts,test}/**/*.{js,json,ts}' 'docs/*.{js,json}' 'docs/src/**/*' index.js README.md package.json","pretest":"npm run -s lint","test":"nyc mocha test/mocha-node-setup.js \"test/*/**/*-test.js\"","test:browser":"cypress run --browser chrome","build":"npm-run-all build:*","build:ts":"npm run -s update-endpoints:typescript","prebuild:browser":"mkdirp dist/","build:browser":"npm-run-all build:browser:*","build:browser:development":"webpack --mode development --entry . --output-library=Octokit --output=./dist/octokit-rest.js --profile --json > dist/bundle-stats.json","build:browser:production":"webpack --mode production --entry . --plugin=compression-webpack-plugin --output-library=Octokit --output-path=./dist --output-filename=octokit-rest.min.js --devtool source-map","generate-bundle-report":"webpack-bundle-analyzer dist/bundle-stats.json --mode=static --no-open --report dist/bundle-report.html","update-endpoints":"npm-run-all update-endpoints:*","update-endpoints:fetch-json":"node scripts/update-endpoints/fetch-json","update-endpoints:code":"node scripts/update-endpoints/code","update-endpoints:typescript":"node scripts/update-endpoints/typescript","prevalidate:ts":"npm run -s build:ts","validate:ts":"tsc --target es6 --noImplicitAny index.d.ts","postvalidate:ts":"tsc --noEmit --target es6 test/typescript-validate.ts","start-fixtures-server":"octokit-fixtures-server"},"license":"MIT","files":["index.js","index.d.ts","lib","plugins"],"nyc":{"ignore":["test"]},"release":{"publish":["@semantic-release/npm",{"path":"@semantic-release/github","assets":["dist/*","!dist/*.map.gz"]}]},"bundlesize":[{"path":"./dist/octokit-rest.min.js.gz","maxSize":"33 kB"}],"_resolved":"https://registry.npmjs.org/@octokit/rest/-/rest-16.38.1.tgz","_integrity":"sha512-zyNFx+/Bd1EXt7LQjfrc6H4wryBQ/oDuZeZhGMBSFr1eMPFDmpEweFQR3R25zjKwBQpDY7L5GQO6A3XSaOfV1w==","_from":"@octokit/rest@16.38.1"}; +module.exports = {"_args":[["@octokit/rest@16.38.1","/home/zodman/dev/setup-node"]],"_from":"@octokit/rest@16.38.1","_id":"@octokit/rest@16.38.1","_inBundle":false,"_integrity":"sha512-zyNFx+/Bd1EXt7LQjfrc6H4wryBQ/oDuZeZhGMBSFr1eMPFDmpEweFQR3R25zjKwBQpDY7L5GQO6A3XSaOfV1w==","_location":"/@octokit/rest","_phantomChildren":{"os-name":"3.1.0"},"_requested":{"type":"version","registry":true,"raw":"@octokit/rest@16.38.1","name":"@octokit/rest","escapedName":"@octokit%2frest","scope":"@octokit","rawSpec":"16.38.1","saveSpec":null,"fetchSpec":"16.38.1"},"_requiredBy":["/@actions/github"],"_resolved":"https://registry.npmjs.org/@octokit/rest/-/rest-16.38.1.tgz","_spec":"16.38.1","_where":"/home/zodman/dev/setup-node","author":{"name":"Gregor Martynus","url":"https://github.com/gr2m"},"bugs":{"url":"https://github.com/octokit/rest.js/issues"},"bundlesize":[{"path":"./dist/octokit-rest.min.js.gz","maxSize":"33 kB"}],"contributors":[{"name":"Mike de Boer","email":"info@mikedeboer.nl"},{"name":"Fabian Jakobs","email":"fabian@c9.io"},{"name":"Joe Gallo","email":"joe@brassafrax.com"},{"name":"Gregor Martynus","url":"https://github.com/gr2m"}],"dependencies":{"@octokit/auth-token":"^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"},"description":"GitHub REST API client for Node.js","devDependencies":{"@gimenete/type-writer":"^0.1.3","@octokit/auth":"^1.1.1","@octokit/fixtures-server":"^5.0.6","@octokit/graphql":"^4.2.0","@types/node":"^13.1.0","bundlesize":"^0.18.0","chai":"^4.1.2","compression-webpack-plugin":"^3.1.0","cypress":"^3.0.0","glob":"^7.1.2","http-proxy-agent":"^3.0.0","lodash.camelcase":"^4.3.0","lodash.merge":"^4.6.1","lodash.upperfirst":"^4.3.1","mkdirp":"^0.5.1","mocha":"^6.0.0","mustache":"^4.0.0","nock":"^11.3.3","npm-run-all":"^4.1.2","nyc":"^15.0.0","prettier":"^1.14.2","proxy":"^1.0.0","semantic-release":"^16.0.0","sinon":"^8.0.0","sinon-chai":"^3.0.0","sort-keys":"^4.0.0","string-to-arraybuffer":"^1.0.0","string-to-jsdoc-comment":"^1.0.0","typescript":"^3.3.1","webpack":"^4.0.0","webpack-bundle-analyzer":"^3.0.0","webpack-cli":"^3.0.0"},"files":["index.js","index.d.ts","lib","plugins"],"homepage":"https://github.com/octokit/rest.js#readme","keywords":["octokit","github","rest","api-client"],"license":"MIT","name":"@octokit/rest","nyc":{"ignore":["test"]},"publishConfig":{"access":"public"},"release":{"publish":["@semantic-release/npm",{"path":"@semantic-release/github","assets":["dist/*","!dist/*.map.gz"]}]},"repository":{"type":"git","url":"git+https://github.com/octokit/rest.js.git"},"scripts":{"build":"npm-run-all build:*","build:browser":"npm-run-all build:browser:*","build:browser:development":"webpack --mode development --entry . --output-library=Octokit --output=./dist/octokit-rest.js --profile --json > dist/bundle-stats.json","build:browser:production":"webpack --mode production --entry . --plugin=compression-webpack-plugin --output-library=Octokit --output-path=./dist --output-filename=octokit-rest.min.js --devtool source-map","build:ts":"npm run -s update-endpoints:typescript","coverage":"nyc report --reporter=html && open coverage/index.html","generate-bundle-report":"webpack-bundle-analyzer dist/bundle-stats.json --mode=static --no-open --report dist/bundle-report.html","lint":"prettier --check '{lib,plugins,scripts,test}/**/*.{js,json,ts}' 'docs/*.{js,json}' 'docs/src/**/*' index.js README.md package.json","lint:fix":"prettier --write '{lib,plugins,scripts,test}/**/*.{js,json,ts}' 'docs/*.{js,json}' 'docs/src/**/*' index.js README.md package.json","postvalidate:ts":"tsc --noEmit --target es6 test/typescript-validate.ts","prebuild:browser":"mkdirp dist/","pretest":"npm run -s lint","prevalidate:ts":"npm run -s build:ts","start-fixtures-server":"octokit-fixtures-server","test":"nyc mocha test/mocha-node-setup.js \"test/*/**/*-test.js\"","test:browser":"cypress run --browser chrome","update-endpoints":"npm-run-all update-endpoints:*","update-endpoints:code":"node scripts/update-endpoints/code","update-endpoints:fetch-json":"node scripts/update-endpoints/fetch-json","update-endpoints:typescript":"node scripts/update-endpoints/typescript","validate:ts":"tsc --target es6 --noImplicitAny index.d.ts"},"types":"index.d.ts","version":"16.38.1"}; /***/ }), @@ -6960,7 +6960,7 @@ function normalizePaginatedListResponse(octokit, url, response) { /***/ 314: /***/ (function(module) { -module.exports = {"name":"@octokit/graphql","version":"2.1.3","publishConfig":{"access":"public"},"description":"GitHub GraphQL API client for browsers and Node","main":"index.js","scripts":{"prebuild":"mkdirp dist/","build":"npm-run-all build:*","build:development":"webpack --mode development --entry . --output-library=octokitGraphql --output=./dist/octokit-graphql.js --profile --json > dist/bundle-stats.json","build:production":"webpack --mode production --entry . --plugin=compression-webpack-plugin --output-library=octokitGraphql --output-path=./dist --output-filename=octokit-graphql.min.js --devtool source-map","bundle-report":"webpack-bundle-analyzer dist/bundle-stats.json --mode=static --no-open --report dist/bundle-report.html","coverage":"nyc report --reporter=html && open coverage/index.html","coverage:upload":"nyc report --reporter=text-lcov | coveralls","pretest":"standard","test":"nyc mocha test/*-test.js","test:browser":"cypress run --browser chrome"},"repository":{"type":"git","url":"https://github.com/octokit/graphql.js.git"},"keywords":["octokit","github","api","graphql"],"author":"Gregor Martynus (https://github.com/gr2m)","license":"MIT","bugs":{"url":"https://github.com/octokit/graphql.js/issues"},"homepage":"https://github.com/octokit/graphql.js#readme","dependencies":{"@octokit/request":"^5.0.0","universal-user-agent":"^2.0.3"},"devDependencies":{"chai":"^4.2.0","compression-webpack-plugin":"^2.0.0","coveralls":"^3.0.3","cypress":"^3.1.5","fetch-mock":"^7.3.1","mkdirp":"^0.5.1","mocha":"^6.0.0","npm-run-all":"^4.1.3","nyc":"^14.0.0","semantic-release":"^15.13.3","simple-mock":"^0.8.0","standard":"^12.0.1","webpack":"^4.29.6","webpack-bundle-analyzer":"^3.1.0","webpack-cli":"^3.2.3"},"bundlesize":[{"path":"./dist/octokit-graphql.min.js.gz","maxSize":"5KB"}],"release":{"publish":["@semantic-release/npm",{"path":"@semantic-release/github","assets":["dist/*","!dist/*.map.gz"]}]},"standard":{"globals":["describe","before","beforeEach","afterEach","after","it","expect"]},"files":["lib"],"_resolved":"https://registry.npmjs.org/@octokit/graphql/-/graphql-2.1.3.tgz","_integrity":"sha512-XoXJqL2ondwdnMIW3wtqJWEwcBfKk37jO/rYkoxNPEVeLBDGsGO1TCWggrAlq3keGt/O+C/7VepXnukUxwt5vA==","_from":"@octokit/graphql@2.1.3"}; +module.exports = {"_args":[["@octokit/graphql@2.1.3","/home/zodman/dev/setup-node"]],"_from":"@octokit/graphql@2.1.3","_id":"@octokit/graphql@2.1.3","_inBundle":false,"_integrity":"sha512-XoXJqL2ondwdnMIW3wtqJWEwcBfKk37jO/rYkoxNPEVeLBDGsGO1TCWggrAlq3keGt/O+C/7VepXnukUxwt5vA==","_location":"/@octokit/graphql","_phantomChildren":{},"_requested":{"type":"version","registry":true,"raw":"@octokit/graphql@2.1.3","name":"@octokit/graphql","escapedName":"@octokit%2fgraphql","scope":"@octokit","rawSpec":"2.1.3","saveSpec":null,"fetchSpec":"2.1.3"},"_requiredBy":["/@actions/github"],"_resolved":"https://registry.npmjs.org/@octokit/graphql/-/graphql-2.1.3.tgz","_spec":"2.1.3","_where":"/home/zodman/dev/setup-node","author":{"name":"Gregor Martynus","url":"https://github.com/gr2m"},"bugs":{"url":"https://github.com/octokit/graphql.js/issues"},"bundlesize":[{"path":"./dist/octokit-graphql.min.js.gz","maxSize":"5KB"}],"dependencies":{"@octokit/request":"^5.0.0","universal-user-agent":"^2.0.3"},"description":"GitHub GraphQL API client for browsers and Node","devDependencies":{"chai":"^4.2.0","compression-webpack-plugin":"^2.0.0","coveralls":"^3.0.3","cypress":"^3.1.5","fetch-mock":"^7.3.1","mkdirp":"^0.5.1","mocha":"^6.0.0","npm-run-all":"^4.1.3","nyc":"^14.0.0","semantic-release":"^15.13.3","simple-mock":"^0.8.0","standard":"^12.0.1","webpack":"^4.29.6","webpack-bundle-analyzer":"^3.1.0","webpack-cli":"^3.2.3"},"files":["lib"],"homepage":"https://github.com/octokit/graphql.js#readme","keywords":["octokit","github","api","graphql"],"license":"MIT","main":"index.js","name":"@octokit/graphql","publishConfig":{"access":"public"},"release":{"publish":["@semantic-release/npm",{"path":"@semantic-release/github","assets":["dist/*","!dist/*.map.gz"]}]},"repository":{"type":"git","url":"git+https://github.com/octokit/graphql.js.git"},"scripts":{"build":"npm-run-all build:*","build:development":"webpack --mode development --entry . --output-library=octokitGraphql --output=./dist/octokit-graphql.js --profile --json > dist/bundle-stats.json","build:production":"webpack --mode production --entry . --plugin=compression-webpack-plugin --output-library=octokitGraphql --output-path=./dist --output-filename=octokit-graphql.min.js --devtool source-map","bundle-report":"webpack-bundle-analyzer dist/bundle-stats.json --mode=static --no-open --report dist/bundle-report.html","coverage":"nyc report --reporter=html && open coverage/index.html","coverage:upload":"nyc report --reporter=text-lcov | coveralls","prebuild":"mkdirp dist/","pretest":"standard","test":"nyc mocha test/*-test.js","test:browser":"cypress run --browser chrome"},"standard":{"globals":["describe","before","beforeEach","afterEach","after","it","expect"]},"version":"2.1.3"}; /***/ }), From 312bbeecfd17cdd5fb1cd3563948aa06d9e5e8b3 Mon Sep 17 00:00:00 2001 From: Andres Vargas Date: Wed, 21 Oct 2020 18:38:23 -0500 Subject: [PATCH 31/55] update changes --- dist/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dist/index.js b/dist/index.js index 30c7a0c..2bb306f 100644 --- a/dist/index.js +++ b/dist/index.js @@ -4810,7 +4810,7 @@ module.exports = require("https"); /***/ 215: /***/ (function(module) { -module.exports = {"_args":[["@octokit/rest@16.38.1","/home/zodman/dev/setup-node"]],"_from":"@octokit/rest@16.38.1","_id":"@octokit/rest@16.38.1","_inBundle":false,"_integrity":"sha512-zyNFx+/Bd1EXt7LQjfrc6H4wryBQ/oDuZeZhGMBSFr1eMPFDmpEweFQR3R25zjKwBQpDY7L5GQO6A3XSaOfV1w==","_location":"/@octokit/rest","_phantomChildren":{"os-name":"3.1.0"},"_requested":{"type":"version","registry":true,"raw":"@octokit/rest@16.38.1","name":"@octokit/rest","escapedName":"@octokit%2frest","scope":"@octokit","rawSpec":"16.38.1","saveSpec":null,"fetchSpec":"16.38.1"},"_requiredBy":["/@actions/github"],"_resolved":"https://registry.npmjs.org/@octokit/rest/-/rest-16.38.1.tgz","_spec":"16.38.1","_where":"/home/zodman/dev/setup-node","author":{"name":"Gregor Martynus","url":"https://github.com/gr2m"},"bugs":{"url":"https://github.com/octokit/rest.js/issues"},"bundlesize":[{"path":"./dist/octokit-rest.min.js.gz","maxSize":"33 kB"}],"contributors":[{"name":"Mike de Boer","email":"info@mikedeboer.nl"},{"name":"Fabian Jakobs","email":"fabian@c9.io"},{"name":"Joe Gallo","email":"joe@brassafrax.com"},{"name":"Gregor Martynus","url":"https://github.com/gr2m"}],"dependencies":{"@octokit/auth-token":"^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"},"description":"GitHub REST API client for Node.js","devDependencies":{"@gimenete/type-writer":"^0.1.3","@octokit/auth":"^1.1.1","@octokit/fixtures-server":"^5.0.6","@octokit/graphql":"^4.2.0","@types/node":"^13.1.0","bundlesize":"^0.18.0","chai":"^4.1.2","compression-webpack-plugin":"^3.1.0","cypress":"^3.0.0","glob":"^7.1.2","http-proxy-agent":"^3.0.0","lodash.camelcase":"^4.3.0","lodash.merge":"^4.6.1","lodash.upperfirst":"^4.3.1","mkdirp":"^0.5.1","mocha":"^6.0.0","mustache":"^4.0.0","nock":"^11.3.3","npm-run-all":"^4.1.2","nyc":"^15.0.0","prettier":"^1.14.2","proxy":"^1.0.0","semantic-release":"^16.0.0","sinon":"^8.0.0","sinon-chai":"^3.0.0","sort-keys":"^4.0.0","string-to-arraybuffer":"^1.0.0","string-to-jsdoc-comment":"^1.0.0","typescript":"^3.3.1","webpack":"^4.0.0","webpack-bundle-analyzer":"^3.0.0","webpack-cli":"^3.0.0"},"files":["index.js","index.d.ts","lib","plugins"],"homepage":"https://github.com/octokit/rest.js#readme","keywords":["octokit","github","rest","api-client"],"license":"MIT","name":"@octokit/rest","nyc":{"ignore":["test"]},"publishConfig":{"access":"public"},"release":{"publish":["@semantic-release/npm",{"path":"@semantic-release/github","assets":["dist/*","!dist/*.map.gz"]}]},"repository":{"type":"git","url":"git+https://github.com/octokit/rest.js.git"},"scripts":{"build":"npm-run-all build:*","build:browser":"npm-run-all build:browser:*","build:browser:development":"webpack --mode development --entry . --output-library=Octokit --output=./dist/octokit-rest.js --profile --json > dist/bundle-stats.json","build:browser:production":"webpack --mode production --entry . --plugin=compression-webpack-plugin --output-library=Octokit --output-path=./dist --output-filename=octokit-rest.min.js --devtool source-map","build:ts":"npm run -s update-endpoints:typescript","coverage":"nyc report --reporter=html && open coverage/index.html","generate-bundle-report":"webpack-bundle-analyzer dist/bundle-stats.json --mode=static --no-open --report dist/bundle-report.html","lint":"prettier --check '{lib,plugins,scripts,test}/**/*.{js,json,ts}' 'docs/*.{js,json}' 'docs/src/**/*' index.js README.md package.json","lint:fix":"prettier --write '{lib,plugins,scripts,test}/**/*.{js,json,ts}' 'docs/*.{js,json}' 'docs/src/**/*' index.js README.md package.json","postvalidate:ts":"tsc --noEmit --target es6 test/typescript-validate.ts","prebuild:browser":"mkdirp dist/","pretest":"npm run -s lint","prevalidate:ts":"npm run -s build:ts","start-fixtures-server":"octokit-fixtures-server","test":"nyc mocha test/mocha-node-setup.js \"test/*/**/*-test.js\"","test:browser":"cypress run --browser chrome","update-endpoints":"npm-run-all update-endpoints:*","update-endpoints:code":"node scripts/update-endpoints/code","update-endpoints:fetch-json":"node scripts/update-endpoints/fetch-json","update-endpoints:typescript":"node scripts/update-endpoints/typescript","validate:ts":"tsc --target es6 --noImplicitAny index.d.ts"},"types":"index.d.ts","version":"16.38.1"}; +module.exports = {"name":"@octokit/rest","version":"16.38.1","publishConfig":{"access":"public"},"description":"GitHub REST API client for Node.js","keywords":["octokit","github","rest","api-client"],"author":"Gregor Martynus (https://github.com/gr2m)","contributors":[{"name":"Mike de Boer","email":"info@mikedeboer.nl"},{"name":"Fabian Jakobs","email":"fabian@c9.io"},{"name":"Joe Gallo","email":"joe@brassafrax.com"},{"name":"Gregor Martynus","url":"https://github.com/gr2m"}],"repository":"https://github.com/octokit/rest.js","dependencies":{"@octokit/auth-token":"^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"},"devDependencies":{"@gimenete/type-writer":"^0.1.3","@octokit/auth":"^1.1.1","@octokit/fixtures-server":"^5.0.6","@octokit/graphql":"^4.2.0","@types/node":"^13.1.0","bundlesize":"^0.18.0","chai":"^4.1.2","compression-webpack-plugin":"^3.1.0","cypress":"^3.0.0","glob":"^7.1.2","http-proxy-agent":"^3.0.0","lodash.camelcase":"^4.3.0","lodash.merge":"^4.6.1","lodash.upperfirst":"^4.3.1","mkdirp":"^0.5.1","mocha":"^6.0.0","mustache":"^4.0.0","nock":"^11.3.3","npm-run-all":"^4.1.2","nyc":"^15.0.0","prettier":"^1.14.2","proxy":"^1.0.0","semantic-release":"^16.0.0","sinon":"^8.0.0","sinon-chai":"^3.0.0","sort-keys":"^4.0.0","string-to-arraybuffer":"^1.0.0","string-to-jsdoc-comment":"^1.0.0","typescript":"^3.3.1","webpack":"^4.0.0","webpack-bundle-analyzer":"^3.0.0","webpack-cli":"^3.0.0"},"types":"index.d.ts","scripts":{"coverage":"nyc report --reporter=html && open coverage/index.html","lint":"prettier --check '{lib,plugins,scripts,test}/**/*.{js,json,ts}' 'docs/*.{js,json}' 'docs/src/**/*' index.js README.md package.json","lint:fix":"prettier --write '{lib,plugins,scripts,test}/**/*.{js,json,ts}' 'docs/*.{js,json}' 'docs/src/**/*' index.js README.md package.json","pretest":"npm run -s lint","test":"nyc mocha test/mocha-node-setup.js \"test/*/**/*-test.js\"","test:browser":"cypress run --browser chrome","build":"npm-run-all build:*","build:ts":"npm run -s update-endpoints:typescript","prebuild:browser":"mkdirp dist/","build:browser":"npm-run-all build:browser:*","build:browser:development":"webpack --mode development --entry . --output-library=Octokit --output=./dist/octokit-rest.js --profile --json > dist/bundle-stats.json","build:browser:production":"webpack --mode production --entry . --plugin=compression-webpack-plugin --output-library=Octokit --output-path=./dist --output-filename=octokit-rest.min.js --devtool source-map","generate-bundle-report":"webpack-bundle-analyzer dist/bundle-stats.json --mode=static --no-open --report dist/bundle-report.html","update-endpoints":"npm-run-all update-endpoints:*","update-endpoints:fetch-json":"node scripts/update-endpoints/fetch-json","update-endpoints:code":"node scripts/update-endpoints/code","update-endpoints:typescript":"node scripts/update-endpoints/typescript","prevalidate:ts":"npm run -s build:ts","validate:ts":"tsc --target es6 --noImplicitAny index.d.ts","postvalidate:ts":"tsc --noEmit --target es6 test/typescript-validate.ts","start-fixtures-server":"octokit-fixtures-server"},"license":"MIT","files":["index.js","index.d.ts","lib","plugins"],"nyc":{"ignore":["test"]},"release":{"publish":["@semantic-release/npm",{"path":"@semantic-release/github","assets":["dist/*","!dist/*.map.gz"]}]},"bundlesize":[{"path":"./dist/octokit-rest.min.js.gz","maxSize":"33 kB"}],"_resolved":"https://registry.npmjs.org/@octokit/rest/-/rest-16.38.1.tgz","_integrity":"sha512-zyNFx+/Bd1EXt7LQjfrc6H4wryBQ/oDuZeZhGMBSFr1eMPFDmpEweFQR3R25zjKwBQpDY7L5GQO6A3XSaOfV1w==","_from":"@octokit/rest@16.38.1"}; /***/ }), @@ -6960,7 +6960,7 @@ function normalizePaginatedListResponse(octokit, url, response) { /***/ 314: /***/ (function(module) { -module.exports = {"_args":[["@octokit/graphql@2.1.3","/home/zodman/dev/setup-node"]],"_from":"@octokit/graphql@2.1.3","_id":"@octokit/graphql@2.1.3","_inBundle":false,"_integrity":"sha512-XoXJqL2ondwdnMIW3wtqJWEwcBfKk37jO/rYkoxNPEVeLBDGsGO1TCWggrAlq3keGt/O+C/7VepXnukUxwt5vA==","_location":"/@octokit/graphql","_phantomChildren":{},"_requested":{"type":"version","registry":true,"raw":"@octokit/graphql@2.1.3","name":"@octokit/graphql","escapedName":"@octokit%2fgraphql","scope":"@octokit","rawSpec":"2.1.3","saveSpec":null,"fetchSpec":"2.1.3"},"_requiredBy":["/@actions/github"],"_resolved":"https://registry.npmjs.org/@octokit/graphql/-/graphql-2.1.3.tgz","_spec":"2.1.3","_where":"/home/zodman/dev/setup-node","author":{"name":"Gregor Martynus","url":"https://github.com/gr2m"},"bugs":{"url":"https://github.com/octokit/graphql.js/issues"},"bundlesize":[{"path":"./dist/octokit-graphql.min.js.gz","maxSize":"5KB"}],"dependencies":{"@octokit/request":"^5.0.0","universal-user-agent":"^2.0.3"},"description":"GitHub GraphQL API client for browsers and Node","devDependencies":{"chai":"^4.2.0","compression-webpack-plugin":"^2.0.0","coveralls":"^3.0.3","cypress":"^3.1.5","fetch-mock":"^7.3.1","mkdirp":"^0.5.1","mocha":"^6.0.0","npm-run-all":"^4.1.3","nyc":"^14.0.0","semantic-release":"^15.13.3","simple-mock":"^0.8.0","standard":"^12.0.1","webpack":"^4.29.6","webpack-bundle-analyzer":"^3.1.0","webpack-cli":"^3.2.3"},"files":["lib"],"homepage":"https://github.com/octokit/graphql.js#readme","keywords":["octokit","github","api","graphql"],"license":"MIT","main":"index.js","name":"@octokit/graphql","publishConfig":{"access":"public"},"release":{"publish":["@semantic-release/npm",{"path":"@semantic-release/github","assets":["dist/*","!dist/*.map.gz"]}]},"repository":{"type":"git","url":"git+https://github.com/octokit/graphql.js.git"},"scripts":{"build":"npm-run-all build:*","build:development":"webpack --mode development --entry . --output-library=octokitGraphql --output=./dist/octokit-graphql.js --profile --json > dist/bundle-stats.json","build:production":"webpack --mode production --entry . --plugin=compression-webpack-plugin --output-library=octokitGraphql --output-path=./dist --output-filename=octokit-graphql.min.js --devtool source-map","bundle-report":"webpack-bundle-analyzer dist/bundle-stats.json --mode=static --no-open --report dist/bundle-report.html","coverage":"nyc report --reporter=html && open coverage/index.html","coverage:upload":"nyc report --reporter=text-lcov | coveralls","prebuild":"mkdirp dist/","pretest":"standard","test":"nyc mocha test/*-test.js","test:browser":"cypress run --browser chrome"},"standard":{"globals":["describe","before","beforeEach","afterEach","after","it","expect"]},"version":"2.1.3"}; +module.exports = {"name":"@octokit/graphql","version":"2.1.3","publishConfig":{"access":"public"},"description":"GitHub GraphQL API client for browsers and Node","main":"index.js","scripts":{"prebuild":"mkdirp dist/","build":"npm-run-all build:*","build:development":"webpack --mode development --entry . --output-library=octokitGraphql --output=./dist/octokit-graphql.js --profile --json > dist/bundle-stats.json","build:production":"webpack --mode production --entry . --plugin=compression-webpack-plugin --output-library=octokitGraphql --output-path=./dist --output-filename=octokit-graphql.min.js --devtool source-map","bundle-report":"webpack-bundle-analyzer dist/bundle-stats.json --mode=static --no-open --report dist/bundle-report.html","coverage":"nyc report --reporter=html && open coverage/index.html","coverage:upload":"nyc report --reporter=text-lcov | coveralls","pretest":"standard","test":"nyc mocha test/*-test.js","test:browser":"cypress run --browser chrome"},"repository":{"type":"git","url":"https://github.com/octokit/graphql.js.git"},"keywords":["octokit","github","api","graphql"],"author":"Gregor Martynus (https://github.com/gr2m)","license":"MIT","bugs":{"url":"https://github.com/octokit/graphql.js/issues"},"homepage":"https://github.com/octokit/graphql.js#readme","dependencies":{"@octokit/request":"^5.0.0","universal-user-agent":"^2.0.3"},"devDependencies":{"chai":"^4.2.0","compression-webpack-plugin":"^2.0.0","coveralls":"^3.0.3","cypress":"^3.1.5","fetch-mock":"^7.3.1","mkdirp":"^0.5.1","mocha":"^6.0.0","npm-run-all":"^4.1.3","nyc":"^14.0.0","semantic-release":"^15.13.3","simple-mock":"^0.8.0","standard":"^12.0.1","webpack":"^4.29.6","webpack-bundle-analyzer":"^3.1.0","webpack-cli":"^3.2.3"},"bundlesize":[{"path":"./dist/octokit-graphql.min.js.gz","maxSize":"5KB"}],"release":{"publish":["@semantic-release/npm",{"path":"@semantic-release/github","assets":["dist/*","!dist/*.map.gz"]}]},"standard":{"globals":["describe","before","beforeEach","afterEach","after","it","expect"]},"files":["lib"],"_resolved":"https://registry.npmjs.org/@octokit/graphql/-/graphql-2.1.3.tgz","_integrity":"sha512-XoXJqL2ondwdnMIW3wtqJWEwcBfKk37jO/rYkoxNPEVeLBDGsGO1TCWggrAlq3keGt/O+C/7VepXnukUxwt5vA==","_from":"@octokit/graphql@2.1.3"}; /***/ }), From 66dfac53286d1ae56996e1646594f5e0cccde1bb Mon Sep 17 00:00:00 2001 From: Andres Vargas Date: Wed, 21 Oct 2020 19:02:40 -0500 Subject: [PATCH 32/55] update comment --- src/authutil.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/authutil.ts b/src/authutil.ts index bdfb00c..aaebdfd 100644 --- a/src/authutil.ts +++ b/src/authutil.ts @@ -53,7 +53,7 @@ function writeRegistryToFile( newContents += `${authString}${os.EOL}${registryString}${os.EOL}${alwaysAuthString}`; fs.writeFileSync(fileLocation, newContents); core.exportVariable('NPM_CONFIG_USERCONFIG', fileLocation); - // Export empty node_auth_token so npm doesn't complain about not being able to find it + // Export empty node_auth_token if didn't exist so npm doesn't complain about not being able to find it core.exportVariable( 'NODE_AUTH_TOKEN', process.env.NODE_AUTH_TOKEN || 'XXXXX-XXXXX-XXXXX-XXXXX' From 7d147e85af0aaeb2e3882aac8b19915eabf08868 Mon Sep 17 00:00:00 2001 From: Andres Vargas Date: Tue, 27 Oct 2020 18:17:58 -0600 Subject: [PATCH 33/55] unstage changes --- dist/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dist/index.js b/dist/index.js index 2bb306f..c36c307 100644 --- a/dist/index.js +++ b/dist/index.js @@ -4793,7 +4793,7 @@ function writeRegistryToFile(registryUrl, fileLocation, alwaysAuth) { newContents += `${authString}${os.EOL}${registryString}${os.EOL}${alwaysAuthString}`; fs.writeFileSync(fileLocation, newContents); core.exportVariable('NPM_CONFIG_USERCONFIG', fileLocation); - // Export empty node_auth_token so npm doesn't complain about not being able to find it + // Export empty node_auth_token if didn't exist so npm doesn't complain about not being able to find it core.exportVariable('NODE_AUTH_TOKEN', process.env.NODE_AUTH_TOKEN || 'XXXXX-XXXXX-XXXXX-XXXXX'); } //# sourceMappingURL=authutil.js.map From 70b9252472eee7495c93bb1588261539c3c2b98d Mon Sep 17 00:00:00 2001 From: nulltoken Date: Thu, 19 Nov 2020 23:01:35 +0100 Subject: [PATCH 34/55] [Readme] Using `check-latest` requires `v2-beta` (#207) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0bd60db..b271c0d 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ Check latest version: ```yaml steps: - uses: actions/checkout@v2 -- uses: actions/setup-node@v2 +- uses: actions/setup-node@v2-beta with: node-version: '12' check-latest: true From b7cfa22539ebcc02cf61fccd5cd7fcae555cbd1d Mon Sep 17 00:00:00 2001 From: Josh Gross Date: Mon, 7 Dec 2020 16:08:14 -0500 Subject: [PATCH 35/55] Add CODEOWNERS --- CODEOWNERS | 1 + 1 file changed, 1 insertion(+) create mode 100644 CODEOWNERS diff --git a/CODEOWNERS b/CODEOWNERS new file mode 100644 index 0000000..a39dda0 --- /dev/null +++ b/CODEOWNERS @@ -0,0 +1 @@ +* @actions/spark \ No newline at end of file From 5984462aaa1ebbfd6105de1f5d30f9c6b9b3ba77 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 8 Dec 2020 16:15:38 -0600 Subject: [PATCH 36/55] Rename node-arch to architecture --- README.md | 8 ++++---- __tests__/installer.test.ts | 2 +- action.yml | 2 +- dist/index.js | 6 +++--- src/main.ts | 6 +++--- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index a2a99c3..7d1bc7b 100644 --- a/README.md +++ b/README.md @@ -91,21 +91,21 @@ jobs: - 10 - 12 - 14 - node_arch: + architecture: - x64 # an extra windows-x86 run: include: - os: windows-2016 node_version: 12 - node_arch: x86 - name: Node ${{ matrix.node_version }} - ${{ matrix.node_arch }} on ${{ matrix.os }} + architecture: x86 + name: Node ${{ matrix.node_version }} - ${{ matrix.architecture }} on ${{ matrix.os }} steps: - uses: actions/checkout@v2 - name: Setup node uses: actions/setup-node@v1 with: node-version: ${{ matrix.node_version }} - node-arch: ${{ matrix.node_arch }} + architecture: ${{ matrix.architecture }} - run: npm install - run: npm test ``` diff --git a/__tests__/installer.test.ts b/__tests__/installer.test.ts index 6e39ad8..22ac3d6 100644 --- a/__tests__/installer.test.ts +++ b/__tests__/installer.test.ts @@ -356,7 +356,7 @@ describe('setup-node', () => { }[os.platform]; inputs['node-version'] = version; - inputs['node-arch'] = arch; + inputs['architecture'] = arch; inputs['always-auth'] = false; inputs['token'] = 'faketoken'; diff --git a/action.yml b/action.yml index 734f651..4b524c4 100644 --- a/action.yml +++ b/action.yml @@ -7,7 +7,7 @@ inputs: default: 'false' node-version: description: 'Version Spec of the version to use. Examples: 12.x, 10.15.1, >=10.15.0' - node-arch: + architecture: description: 'Target architecture for Node to use. Examples: x86, x64. Will use system architecture by default.' check-latest: description: 'Set this option if you want the action to check for the latest available version that satisfies the version spec' diff --git a/dist/index.js b/dist/index.js index bd72268..4f78641 100644 --- a/dist/index.js +++ b/dist/index.js @@ -4706,11 +4706,11 @@ function run() { if (!version) { version = core.getInput('version'); } - let arch = core.getInput('node-arch'); - // if node-arch supplied but node-version is not + let arch = core.getInput('architecture'); + // if architecture supplied but node-version is not // if we don't throw a warning, the already installed x64 node will be used which is not probably what user meant. if (arch && !version) { - core.warning('`node-arch` is provided but `node-version` is missing. This results in using an already installed x64 node which is not probably what you meant. To fix this, provide `node-arch` in combination with `node-version`'); + core.warning('`architecture` is provided but `node-version` is missing. This results in using an already installed x64 node which is not probably what you meant. To fix this, provide `architecture` in combination with `node-version`'); } if (!arch) { arch = os.arch(); diff --git a/src/main.ts b/src/main.ts index 0d3eb77..b0ae3de 100644 --- a/src/main.ts +++ b/src/main.ts @@ -16,13 +16,13 @@ export async function run() { version = core.getInput('version'); } - let arch = core.getInput('node-arch'); + let arch = core.getInput('architecture'); - // if node-arch supplied but node-version is not + // if architecture supplied but node-version is not // if we don't throw a warning, the already installed x64 node will be used which is not probably what user meant. if (arch && !version) { core.warning( - '`node-arch` is provided but `node-version` is missing. This results in using an already installed x64 node which is not probably what you meant. To fix this, provide `node-arch` in combination with `node-version`' + '`architecture` is provided but `node-version` is missing. This results in using an already installed x64 node which is not probably what you meant. To fix this, provide `architecture` in combination with `node-version`' ); } From 2bbfc7698af074e7e964a29681caaf32f753b06b Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 8 Dec 2020 16:47:34 -0600 Subject: [PATCH 37/55] Add Architecture only example --- README.md | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7d1bc7b..911fbbe 100644 --- a/README.md +++ b/README.md @@ -74,9 +74,28 @@ jobs: - run: npm test ``` -Operating Systems and Architecture: +Architecture: + +You can use any of the [supported operating systems](https://docs.github.com/en/actions/reference/virtual-environments-for-github-hosted-runners), and the compatible `architecture` can be selected using `architecture`. Values are `x86`, `x64`, `arm64`, `armv6l`, `armv7l`, `ppc64le`, `s390x` (not all of the architectures are available on all platforms). + +When using `architecture`, `node-version` must be provided as well. +```yaml +jobs: + build: + runs-on: windows-latest + name: Node sample + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1 + with: + node-version: '12' + architecture: 'x64' # optional, x64 or x86. If not specified, x64 will be used by default + - run: npm install + - run: npm test +``` + +Multiple Operating Systems and Architectures: -You can use any of the [supported operating systems](https://docs.github.com/en/actions/reference/virtual-environments-for-github-hosted-runners). The architecture can be selected using `node-arch`. Values are `x86`, `x64`, `arm64`, `armv6l`, `armv7l`, `ppc64le`, `s390x` (not all of the architectures are available on all platforms). ```yaml jobs: build: From d6fea3c137a52740107025d7995836b7b4889bbd Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Wed, 9 Dec 2020 11:27:02 -0600 Subject: [PATCH 38/55] update message to be more general This considers self-hosted runners --- dist/index.js | 2 +- src/main.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dist/index.js b/dist/index.js index 4f78641..c959e0a 100644 --- a/dist/index.js +++ b/dist/index.js @@ -4710,7 +4710,7 @@ function run() { // if architecture supplied but node-version is not // if we don't throw a warning, the already installed x64 node will be used which is not probably what user meant. if (arch && !version) { - core.warning('`architecture` is provided but `node-version` is missing. This results in using an already installed x64 node which is not probably what you meant. To fix this, provide `architecture` in combination with `node-version`'); + core.warning('`architecture` is provided but `node-version` is missing. In this configuration, the version/architecture of Node will not be changed. To fix this, provide `architecture` in combination with `node-version`'); } if (!arch) { arch = os.arch(); diff --git a/src/main.ts b/src/main.ts index b0ae3de..3433276 100644 --- a/src/main.ts +++ b/src/main.ts @@ -22,7 +22,7 @@ export async function run() { // if we don't throw a warning, the already installed x64 node will be used which is not probably what user meant. if (arch && !version) { core.warning( - '`architecture` is provided but `node-version` is missing. This results in using an already installed x64 node which is not probably what you meant. To fix this, provide `architecture` in combination with `node-version`' + '`architecture` is provided but `node-version` is missing. In this configuration, the version/architecture of Node will not be changed. To fix this, provide `architecture` in combination with `node-version`' ); } From 05e7d6cc2329fe14126c109b585e0d7924e3abb1 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Wed, 9 Dec 2020 13:28:47 -0600 Subject: [PATCH 39/55] Add e2e arch test --- .github/workflows/versions.yml | 13 +++++++++++++ __tests__/verify-arch.sh | 11 +++++++++++ 2 files changed, 24 insertions(+) create mode 100644 __tests__/verify-arch.sh diff --git a/.github/workflows/versions.yml b/.github/workflows/versions.yml index 3beb1f7..4727b4c 100644 --- a/.github/workflows/versions.yml +++ b/.github/workflows/versions.yml @@ -96,4 +96,17 @@ jobs: node-version: 0.12.18 - name: Verify node run: __tests__/verify-node.sh 0.12.18 SKIP_NPM + shell: bash + + arch: + runs-on: windows-latest + steps: + - uses: actions/checkout@v2 + - name: Setup node 12 x86 from dist + uses: ./ + with: + node-version: '12' + architecture: 'x86' + - name: Verify node + run: __tests__/verify-arch.sh "ia32" shell: bash \ No newline at end of file diff --git a/__tests__/verify-arch.sh b/__tests__/verify-arch.sh new file mode 100644 index 0000000..7d4ebcb --- /dev/null +++ b/__tests__/verify-arch.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +if [ -n "$1" ]; then + architecture="$(node -e 'console.log(process.arch)')" + if [ -z "$(echo $architecture | grep --fixed-strings $1)" ]; then + echo "Unexpected architecture" + exit 1 + fi +else + echo "Skip testing architecture" +fi \ No newline at end of file From 6c8a6e529ab0f2914b5afdd6c9303e394a39d81a Mon Sep 17 00:00:00 2001 From: Maxim Lobanov Date: Tue, 15 Dec 2020 13:36:18 +0300 Subject: [PATCH 40/55] Update README.md --- README.md | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 911fbbe..4a147d1 100644 --- a/README.md +++ b/README.md @@ -10,14 +10,14 @@ This action sets by node environment for use in actions by: - registering problem matchers for error output - configuring authentication for GPR or npm -# v2-beta +# v2 -A beta release which adds reliability for pulling node distributions from a cache of node releases is available by referencing the `v2-beta` tag. +This release adds reliability for pulling node distributions from a cache of node releases. ```yaml steps: - uses: actions/checkout@v2 -- uses: actions/setup-node@v2-beta +- uses: actions/setup-node@v2 with: node-version: '12' ``` @@ -34,7 +34,7 @@ Basic: ```yaml steps: - uses: actions/checkout@v2 -- uses: actions/setup-node@v1 +- uses: actions/setup-node@v2 with: node-version: '12' - run: npm install @@ -47,7 +47,7 @@ Check latest version: ```yaml steps: - uses: actions/checkout@v2 -- uses: actions/setup-node@v2-beta +- uses: actions/setup-node@v2 with: node-version: '12' check-latest: true @@ -67,7 +67,7 @@ jobs: steps: - uses: actions/checkout@v2 - name: Setup node - uses: actions/setup-node@v1 + uses: actions/setup-node@v2 with: node-version: ${{ matrix.node }} - run: npm install @@ -86,7 +86,7 @@ jobs: name: Node sample steps: - uses: actions/checkout@v2 - - uses: actions/setup-node@v1 + - uses: actions/setup-node@v2 with: node-version: '12' architecture: 'x64' # optional, x64 or x86. If not specified, x64 will be used by default @@ -121,7 +121,7 @@ jobs: steps: - uses: actions/checkout@v2 - name: Setup node - uses: actions/setup-node@v1 + uses: actions/setup-node@v2 with: node-version: ${{ matrix.node_version }} architecture: ${{ matrix.architecture }} @@ -133,7 +133,7 @@ Publish to npmjs and GPR with npm: ```yaml steps: - uses: actions/checkout@v2 -- uses: actions/setup-node@v1 +- uses: actions/setup-node@v2 with: node-version: '10.x' registry-url: 'https://registry.npmjs.org' @@ -141,7 +141,7 @@ steps: - run: npm publish env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} -- uses: actions/setup-node@v1 +- uses: actions/setup-node@v2 with: registry-url: 'https://npm.pkg.github.com' - run: npm publish @@ -153,7 +153,7 @@ Publish to npmjs and GPR with yarn: ```yaml steps: - uses: actions/checkout@v2 -- uses: actions/setup-node@v1 +- uses: actions/setup-node@v2 with: node-version: '10.x' registry-url: @@ -161,7 +161,7 @@ steps: - run: yarn publish env: NODE_AUTH_TOKEN: ${{ secrets.YARN_TOKEN }} -- uses: actions/setup-node@v1 +- uses: actions/setup-node@v2 with: registry-url: 'https://npm.pkg.github.com' - run: yarn publish @@ -173,7 +173,7 @@ Use private packages: ```yaml steps: - uses: actions/checkout@v2 -- uses: actions/setup-node@v1 +- uses: actions/setup-node@v2 with: node-version: '10.x' registry-url: 'https://registry.npmjs.org' From 2bfa943ffb91696c9c7baaebda418890c58ca535 Mon Sep 17 00:00:00 2001 From: Maxim Lobanov Date: Tue, 15 Dec 2020 13:38:55 +0300 Subject: [PATCH 41/55] Update build-test.yml --- .github/workflows/build-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 0b132aa..7778fdc 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -20,7 +20,7 @@ jobs: steps: - uses: actions/checkout@v2 - name: Setup node 12 - uses: actions/setup-node@v1 + uses: actions/setup-node@v2 with: node-version: 12.x - run: npm ci From 68fafecfa471220042b49240ef2621c40c87577f Mon Sep 17 00:00:00 2001 From: Rohan Chougule Date: Wed, 20 Jan 2021 20:58:35 +0530 Subject: [PATCH 42/55] refactor: use core.info instead of console.log (#185) --- dist/index.js | 6 +++--- src/main.ts | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/dist/index.js b/dist/index.js index 0276299..800d35a 100644 --- a/dist/index.js +++ b/dist/index.js @@ -4728,9 +4728,9 @@ function run() { auth.configAuthentication(registryUrl, alwaysAuth); } const matchersPath = path.join(__dirname, '..', '.github'); - console.log(`##[add-matcher]${path.join(matchersPath, 'tsc.json')}`); - console.log(`##[add-matcher]${path.join(matchersPath, 'eslint-stylish.json')}`); - console.log(`##[add-matcher]${path.join(matchersPath, 'eslint-compact.json')}`); + core.info(`##[add-matcher]${path.join(matchersPath, 'tsc.json')}`); + core.info(`##[add-matcher]${path.join(matchersPath, 'eslint-stylish.json')}`); + core.info(`##[add-matcher]${path.join(matchersPath, 'eslint-compact.json')}`); } catch (error) { core.setFailed(error.message); diff --git a/src/main.ts b/src/main.ts index 3433276..193eaee 100644 --- a/src/main.ts +++ b/src/main.ts @@ -46,11 +46,11 @@ export async function run() { } const matchersPath = path.join(__dirname, '..', '.github'); - console.log(`##[add-matcher]${path.join(matchersPath, 'tsc.json')}`); - console.log( + core.info(`##[add-matcher]${path.join(matchersPath, 'tsc.json')}`); + core.info( `##[add-matcher]${path.join(matchersPath, 'eslint-stylish.json')}` ); - console.log( + core.info( `##[add-matcher]${path.join(matchersPath, 'eslint-compact.json')}` ); } catch (error) { From 7f4d5225d8c13fce67be36260ffb5c10b3fdaa84 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Jan 2021 11:26:01 -0500 Subject: [PATCH 43/55] Bump lodash from 4.17.15 to 4.17.19 (#174) Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19. - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 10f7faa..62128f1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6336,9 +6336,9 @@ } }, "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", "dev": true }, "lodash.get": { From 4257181919f94362b6137aa288b487191f812e1b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Jan 2021 11:28:06 -0500 Subject: [PATCH 44/55] Bump acorn from 5.7.3 to 5.7.4 (#122) Bumps [acorn](https://github.com/acornjs/acorn) from 5.7.3 to 5.7.4. - [Release notes](https://github.com/acornjs/acorn/releases) - [Commits](https://github.com/acornjs/acorn/compare/5.7.3...5.7.4) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> From 23bdee16bc6fd30e6ad43a07967df709cd7ef1a8 Mon Sep 17 00:00:00 2001 From: Bryan MacFarlane Date: Wed, 20 Jan 2021 11:48:26 -0500 Subject: [PATCH 45/55] Clarifications to the README (#167) (#229) * Update README.md * Update README.md Co-authored-by: Bryan MacFarlane Co-authored-by: Konrad Pabjan --- README.md | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 4a147d1..581bf7a 100644 --- a/README.md +++ b/README.md @@ -22,9 +22,9 @@ steps: node-version: '12' ``` -It will first check the local cache for a semver match. The hosted images have been updated with the latest of each LTS from v8, v10, v12, and v14. `self-hosted` machines will benefit from the cache as well only downloading once. It will pull LTS versions from `main` branch of [node-versions](https://github.com/actions/node-versions/blob/main/versions-manifest.json) repository and on miss or failure, it will fall back to the previous behavior of download directly from [node dist](https://nodejs.org/dist/). +The action will first check the local cache for a semver match. The hosted images have been updated with the latest of each LTS from v8, v10, v12, and v14. `self-hosted` machines will benefit from the cache as well only downloading once. The action will pull LTS versions from [node-versions releases](https://github.com/actions/node-versions/releases) and on miss or failure will fall back to the previous behavior of downloading directly from [node dist](https://nodejs.org/dist/). -The `node-version` input is optional. If not supplied, node which is in your PATH will be used. However, this action will still register problem matchers and support auth features. So setting up the node environment is still a valid scenario without downloading and caching versions. +The `node-version` input is optional. If not supplied, the node version that is PATH will be used. However, this action will still register problem matchers and support auth features. So setting up the node environment is still a valid scenario without downloading and caching versions. # Usage @@ -41,9 +41,14 @@ steps: - run: npm test ``` -Check latest version: -> In basic example, without `check-latest` flag, the action tries to resolve version from local cache firstly and download only if it is not found. Local cache on image is updated with a couple of weeks latency. -`check-latest` flag forces the action to check if the cached version is the latest one. It reduces latency significantly but it is much more likely to incur version downloading. +Check latest version: + +In the basic example above, the `check-latest` flag defaults to `false`. When set to `false`, the action tries to first resolve a version of node from the local cache. For information regarding locally cached versions of Node on GitHub hosted runners, check out [GitHub Actions Virtual Environments](https://github.com/actions/virtual-environments). The local version of Node in cache gets updated every couple of weeks. If unable to find a specific version in the cache, the action will then attempt to download a version of Node. Use the default or set `check-latest` to `false` if you prefer stability and if you want to ensure a specific version of Node is always used. + +If `check-latest` is set to `true`, the action first checks if the cached version is the latest one. If the locally cached version is not the most up-to-date, a version of Node will then be downloaded. Set `check-latest` to `true` it you want the most up-to-date version of Node to always be used. + +> Setting `check-latest` to `true` has performance implications as downloading versions of Node is slower than using cached versions + ```yaml steps: - uses: actions/checkout@v2 From 05f0551dbd620d7be8d92f9f7c1674ebf6bcb0eb Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Wed, 20 Jan 2021 14:15:22 -0500 Subject: [PATCH 46/55] chore: operating-system -> os (#184) Schema validation was flagging the old property name --- .github/workflows/build-test.yml | 4 ++-- .github/workflows/versions.yml | 20 ++++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 7778fdc..da4c182 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -13,10 +13,10 @@ on: jobs: build: - runs-on: ${{ matrix.operating-system }} + runs-on: ${{ matrix.os }} strategy: matrix: - operating-system: [ubuntu-latest, windows-latest, macos-latest] + os: [ubuntu-latest, windows-latest, macos-latest] steps: - uses: actions/checkout@v2 - name: Setup node 12 diff --git a/.github/workflows/versions.yml b/.github/workflows/versions.yml index 4727b4c..2058b02 100644 --- a/.github/workflows/versions.yml +++ b/.github/workflows/versions.yml @@ -13,11 +13,11 @@ on: jobs: local-cache: - runs-on: ${{ matrix.operating-system }} + runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: - operating-system: [ubuntu-latest, windows-latest, macos-latest] + os: [ubuntu-latest, windows-latest, macos-latest] node-version: [10, 12, 14] steps: - uses: actions/checkout@v2 @@ -30,11 +30,11 @@ jobs: shell: bash manifest: - runs-on: ${{ matrix.operating-system }} + runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: - operating-system: [ubuntu-latest, windows-latest, macos-latest] + os: [ubuntu-latest, windows-latest, macos-latest] node-version: [10.15, 12.16.0, 14.2.0] steps: - uses: actions/checkout@v2 @@ -47,11 +47,11 @@ jobs: shell: bash check-latest: - runs-on: ${{ matrix.operating-system }} + runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: - operating-system: [ubuntu-latest, windows-latest, macos-latest] + os: [ubuntu-latest, windows-latest, macos-latest] node-version: [10, 11, 12, 14] steps: - uses: actions/checkout@v2 @@ -65,11 +65,11 @@ jobs: shell: bash node-dist: - runs-on: ${{ matrix.operating-system }} + runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: - operating-system: [ubuntu-latest, windows-latest, macos-latest] + os: [ubuntu-latest, windows-latest, macos-latest] node-version: [11, 13] steps: - uses: actions/checkout@v2 @@ -82,11 +82,11 @@ jobs: shell: bash old-versions: - runs-on: ${{ matrix.operating-system }} + runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: - operating-system: [ubuntu-latest, windows-latest, macos-latest] + os: [ubuntu-latest, windows-latest, macos-latest] steps: - uses: actions/checkout@v2 # test old versions which didn't have npm and layout different From 46071b5c7a2e0c34e49c3cb8a0e792e86e18d5ea Mon Sep 17 00:00:00 2001 From: Guangcong Luo Date: Wed, 17 Feb 2021 07:52:41 -0800 Subject: [PATCH 47/55] Fix TypeScript error line/column (#125) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix TypeScript error line/column * Adopt official pattern from VS Code * Minor cleanup * Add tests for tsc problem matcher Co-authored-by: Lukas Spieß --- .github/tsc.json | 13 +++++----- __tests__/installer.test.ts | 5 ---- __tests__/problem-matcher.test.ts | 43 +++++++++++++++++++++++++++++++ 3 files changed, 50 insertions(+), 11 deletions(-) create mode 100644 __tests__/problem-matcher.test.ts diff --git a/.github/tsc.json b/.github/tsc.json index 5b0b664..7d8df56 100644 --- a/.github/tsc.json +++ b/.github/tsc.json @@ -4,14 +4,15 @@ "owner": "tsc", "pattern": [ { - "regexp": "^(?:\\s+\\d+\\>)?([^\\s].*)\\((\\d+|\\d+,\\d+|\\d+,\\d+,\\d+,\\d+)\\)\\s*:\\s+(error|warning|info)\\s+(\\w{1,2}\\d+)\\s*:\\s*(.*)$", + "regexp": "^([^\\s].*)[\\(:](\\d+)[,:](\\d+)(?:\\):\\s+|\\s+-\\s+)(error|warning|info)\\s+TS(\\d+)\\s*:\\s*(.*)$", "file": 1, - "location": 2, - "severity": 3, - "code": 4, - "message": 5 + "line": 2, + "column": 3, + "severity": 4, + "code": 5, + "message": 6 } ] } ] -} \ No newline at end of file +} diff --git a/__tests__/installer.test.ts b/__tests__/installer.test.ts index 22ac3d6..4fe7577 100644 --- a/__tests__/installer.test.ts +++ b/__tests__/installer.test.ts @@ -8,15 +8,10 @@ import path from 'path'; import * as main from '../src/main'; import * as im from '../src/installer'; import * as auth from '../src/authutil'; -import {context} from '@actions/github'; let nodeTestManifest = require('./data/versions-manifest.json'); let nodeTestDist = require('./data/node-dist-index.json'); -// let matchers = require('../matchers.json'); -// let matcherPattern = matchers.problemMatcher[0].pattern[0]; -// let matcherRegExp = new RegExp(matcherPattern.regexp); - describe('setup-node', () => { let inputs = {} as any; let os = {} as any; diff --git a/__tests__/problem-matcher.test.ts b/__tests__/problem-matcher.test.ts new file mode 100644 index 0000000..4bcfdd1 --- /dev/null +++ b/__tests__/problem-matcher.test.ts @@ -0,0 +1,43 @@ +describe('problem matcher tests', () => { + it('tsc: matches TypeScript "pretty" error message', () => { + const [ + { + pattern: [{regexp}] + } + ] = require('../.github/tsc.json').problemMatcher; + const exampleErrorMessage = + "lib/index.js:23:42 - error TS2345: Argument of type 'A' is not assignable to parameter of type 'B'."; + + const match = exampleErrorMessage.match(new RegExp(regexp)); + expect(match).not.toBeNull(); + expect(match![1]).toEqual('lib/index.js'); + expect(match![2]).toEqual('23'); + expect(match![3]).toEqual('42'); + expect(match![4]).toEqual('error'); + expect(match![5]).toEqual('2345'); + expect(match![6]).toEqual( + "Argument of type 'A' is not assignable to parameter of type 'B'." + ); + }); + + it('tsc: matches TypeScript error message from log file', () => { + const [ + { + pattern: [{regexp}] + } + ] = require('../.github/tsc.json').problemMatcher; + const exampleErrorMessage = + "lib/index.js(23,42): error TS2345: Argument of type 'A' is not assignable to parameter of type 'B'."; + + const match = exampleErrorMessage.match(new RegExp(regexp)); + expect(match).not.toBeNull(); + expect(match![1]).toEqual('lib/index.js'); + expect(match![2]).toEqual('23'); + expect(match![3]).toEqual('42'); + expect(match![4]).toEqual('error'); + expect(match![5]).toEqual('2345'); + expect(match![6]).toEqual( + "Argument of type 'A' is not assignable to parameter of type 'B'." + ); + }); +}); From 5c355be17065acf11598c7a9bb47112fbcf2bbdc Mon Sep 17 00:00:00 2001 From: Robert Stoll Date: Wed, 24 Feb 2021 05:21:23 +0100 Subject: [PATCH 48/55] use 14 instead of 12 in README beacuse peoply copy (#235) --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 581bf7a..ba0da88 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v2 with: - node-version: '12' + node-version: '14' ``` The action will first check the local cache for a semver match. The hosted images have been updated with the latest of each LTS from v8, v10, v12, and v14. `self-hosted` machines will benefit from the cache as well only downloading once. The action will pull LTS versions from [node-versions releases](https://github.com/actions/node-versions/releases) and on miss or failure will fall back to the previous behavior of downloading directly from [node dist](https://nodejs.org/dist/). @@ -36,7 +36,7 @@ steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v2 with: - node-version: '12' + node-version: '14' - run: npm install - run: npm test ``` @@ -54,7 +54,7 @@ steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v2 with: - node-version: '12' + node-version: '14' check-latest: true - run: npm install - run: npm test @@ -67,7 +67,7 @@ jobs: runs-on: ubuntu-16.04 strategy: matrix: - node: [ '10', '12' ] + node: [ '12', '14' ] name: Node ${{ matrix.node }} sample steps: - uses: actions/checkout@v2 @@ -93,7 +93,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions/setup-node@v2 with: - node-version: '12' + node-version: '14' architecture: 'x64' # optional, x64 or x86. If not specified, x64 will be used by default - run: npm install - run: npm test From 24265e14d4c566d4523518a70afc685aafa8754e Mon Sep 17 00:00:00 2001 From: Maxim Lobanov Date: Fri, 21 May 2021 18:16:14 +0300 Subject: [PATCH 49/55] Create 0000-caching-dependencies.md --- docs/adrs/0000-caching-dependencies.md | 59 ++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 docs/adrs/0000-caching-dependencies.md diff --git a/docs/adrs/0000-caching-dependencies.md b/docs/adrs/0000-caching-dependencies.md new file mode 100644 index 0000000..4f9429b --- /dev/null +++ b/docs/adrs/0000-caching-dependencies.md @@ -0,0 +1,59 @@ +# 0. Caching dependencies +Date: 2021-05-21 + +Status: Proposed + +# Context +`actions/setup-node` is the 2nd most popular action in GitHub Actions. A lot of customers use it in conjunction with [actions/cache](https://github.com/actions/cache) to speed up dependencies installation. +See more examples on proper usage in [actions/cache documentation](https://github.com/actions/cache/blob/main/examples.md#node---npm). + +# Goals & Anti-Goals +Integration of caching functionality into `actions/setup-node` action will bring the following benefits for action users: +- Decrease the entry threshold for using the cache for Node.js dependencies and simplify initial configuration +- Simplify YAML pipelines because no need additional steps to enable caching + +As a result, more users will use the cache for Node.js builds and will be happy with fast builds. +As the first stage, we will add support for NPM dependencies caching. We can consider adding the same functionality for Yarn later. + +We don't persue the goal to provide wide customization of caching in scope of `actions/setup-node` action. The purpose of this integration is covering ~90% of basic use-cases. If user needs flexible customization, we should advice them to use `actions/cache` directly. + +# Decision +- Add `cache` input parameter to `actions/setup-node`. For now, input will accept the following values: + - `npm` - enable caching for npm dependencies + - `''` - disable caching (default value) + - Potentially, we will be able to extend this input to support Yarn +- Cache feature will be disabled by default to make sure that we don't break existing customers. We will consider enabling cache by default in next major release (`v3`) +- Add optional input `package-lock-path` that will allow to specify path to `package.lock.json` file path: + - If input is not defined, action will try to search `package.lock.json` or `yarn.lock` (npm 7.x supports `yarn.lock` files) files in the repository root and throw error if no one is found + - If input contains file path, action will use the specified file + - If input contains folder path, action will try to search `package.lock.json` file in the specified folder + - if input contains wildcards (like `**/package-lock.json`), hash of multiple files will be used +- The hash of file provided in `package-lock-path` input will be used as cache key (the same approach like [actions/cache](https://github.com/actions/cache/blob/main/examples.md#node---npm) recommends) +- The following key cache will be used `${{ runner.os }}-npm-${{ hashFiles('') }}` + +# Example of real use-cases +Default use case when `package.lock.json` or `yarn.lock` are located in repository root: +```yml +steps: +- uses: actions/checkout@v2 +- uses: actions/setup-node@v2 + with: + node-version: '14' + cache: npm +``` + +More flexible solution for monorepos: +```yml +steps: +- uses: actions/checkout@v2 +- uses: actions/setup-node@v2 + with: + node-version: '14' + cache: npm + package-lock-path: service1/yarn.lock +``` + +# Release process + +As soon as functionality is implemented, we will release minor update of action. No need to bump major version since there are no breaking changes for existing users. +After that, we will update [starter-workflows](https://github.com/actions/starter-workflows/blob/main/ci/node.js.yml) and [GitHub Action documentation](https://docs.github.com/en/actions/guides/building-and-testing-nodejs#example-caching-dependencies). \ No newline at end of file From 8c35c6c880f88b29b6448c27ed295bc8578256e7 Mon Sep 17 00:00:00 2001 From: Maxim Lobanov Date: Fri, 21 May 2021 18:28:06 +0300 Subject: [PATCH 50/55] Update 0000-caching-dependencies.md --- docs/adrs/0000-caching-dependencies.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/adrs/0000-caching-dependencies.md b/docs/adrs/0000-caching-dependencies.md index 4f9429b..c8c24c5 100644 --- a/docs/adrs/0000-caching-dependencies.md +++ b/docs/adrs/0000-caching-dependencies.md @@ -11,8 +11,8 @@ See more examples on proper usage in [actions/cache documentation](https://githu Integration of caching functionality into `actions/setup-node` action will bring the following benefits for action users: - Decrease the entry threshold for using the cache for Node.js dependencies and simplify initial configuration - Simplify YAML pipelines because no need additional steps to enable caching +- More users will use cache for Node.js so more customers will have fast builds! -As a result, more users will use the cache for Node.js builds and will be happy with fast builds. As the first stage, we will add support for NPM dependencies caching. We can consider adding the same functionality for Yarn later. We don't persue the goal to provide wide customization of caching in scope of `actions/setup-node` action. The purpose of this integration is covering ~90% of basic use-cases. If user needs flexible customization, we should advice them to use `actions/cache` directly. @@ -23,16 +23,16 @@ We don't persue the goal to provide wide customization of caching in scope of `a - `''` - disable caching (default value) - Potentially, we will be able to extend this input to support Yarn - Cache feature will be disabled by default to make sure that we don't break existing customers. We will consider enabling cache by default in next major release (`v3`) -- Add optional input `package-lock-path` that will allow to specify path to `package.lock.json` file path: - - If input is not defined, action will try to search `package.lock.json` or `yarn.lock` (npm 7.x supports `yarn.lock` files) files in the repository root and throw error if no one is found +- Add optional input `package-lock-path` that will allow to specify path to `package-lock.json` file path: + - If input is not defined, action will try to search `package-lock.json` or `yarn.lock` (npm 7.x supports `yarn.lock` files) files in the repository root and throw error if no one is found - If input contains file path, action will use the specified file - - If input contains folder path, action will try to search `package.lock.json` file in the specified folder + - If input contains folder path, action will try to search `package-lock.json` file in the specified folder - if input contains wildcards (like `**/package-lock.json`), hash of multiple files will be used - The hash of file provided in `package-lock-path` input will be used as cache key (the same approach like [actions/cache](https://github.com/actions/cache/blob/main/examples.md#node---npm) recommends) - The following key cache will be used `${{ runner.os }}-npm-${{ hashFiles('') }}` # Example of real use-cases -Default use case when `package.lock.json` or `yarn.lock` are located in repository root: +Default use case when `package-lock.json` or `yarn.lock` are located in repository root: ```yml steps: - uses: actions/checkout@v2 From 5fddb2d5101a1d50d5a55586ac2fded054bf56e7 Mon Sep 17 00:00:00 2001 From: Maxim Lobanov Date: Mon, 24 May 2021 17:35:10 +0300 Subject: [PATCH 51/55] Update 0000-caching-dependencies.md --- docs/adrs/0000-caching-dependencies.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/adrs/0000-caching-dependencies.md b/docs/adrs/0000-caching-dependencies.md index c8c24c5..16193f7 100644 --- a/docs/adrs/0000-caching-dependencies.md +++ b/docs/adrs/0000-caching-dependencies.md @@ -30,6 +30,7 @@ We don't persue the goal to provide wide customization of caching in scope of `a - if input contains wildcards (like `**/package-lock.json`), hash of multiple files will be used - The hash of file provided in `package-lock-path` input will be used as cache key (the same approach like [actions/cache](https://github.com/actions/cache/blob/main/examples.md#node---npm) recommends) - The following key cache will be used `${{ runner.os }}-npm-${{ hashFiles('') }}` +- Action will cache global npm cache directory (retrieved via `npm config get cache`) # Example of real use-cases Default use case when `package-lock.json` or `yarn.lock` are located in repository root: From ae26aaf1b56fb80d170677751f3399908c8eb107 Mon Sep 17 00:00:00 2001 From: Maxim Lobanov Date: Wed, 26 May 2021 17:27:14 +0300 Subject: [PATCH 52/55] Update 0000-caching-dependencies.md --- docs/adrs/0000-caching-dependencies.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/adrs/0000-caching-dependencies.md b/docs/adrs/0000-caching-dependencies.md index 16193f7..641bf83 100644 --- a/docs/adrs/0000-caching-dependencies.md +++ b/docs/adrs/0000-caching-dependencies.md @@ -26,7 +26,6 @@ We don't persue the goal to provide wide customization of caching in scope of `a - Add optional input `package-lock-path` that will allow to specify path to `package-lock.json` file path: - If input is not defined, action will try to search `package-lock.json` or `yarn.lock` (npm 7.x supports `yarn.lock` files) files in the repository root and throw error if no one is found - If input contains file path, action will use the specified file - - If input contains folder path, action will try to search `package-lock.json` file in the specified folder - if input contains wildcards (like `**/package-lock.json`), hash of multiple files will be used - The hash of file provided in `package-lock-path` input will be used as cache key (the same approach like [actions/cache](https://github.com/actions/cache/blob/main/examples.md#node---npm) recommends) - The following key cache will be used `${{ runner.os }}-npm-${{ hashFiles('') }}` From 1bf30534fd920341a18c11e3fcfad5da2494039a Mon Sep 17 00:00:00 2001 From: Maxim Lobanov Date: Wed, 26 May 2021 17:29:27 +0300 Subject: [PATCH 53/55] Update docs/adrs/0000-caching-dependencies.md Co-authored-by: Alejandro Pauly --- docs/adrs/0000-caching-dependencies.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/adrs/0000-caching-dependencies.md b/docs/adrs/0000-caching-dependencies.md index 641bf83..5a88292 100644 --- a/docs/adrs/0000-caching-dependencies.md +++ b/docs/adrs/0000-caching-dependencies.md @@ -15,7 +15,7 @@ Integration of caching functionality into `actions/setup-node` action will bring As the first stage, we will add support for NPM dependencies caching. We can consider adding the same functionality for Yarn later. -We don't persue the goal to provide wide customization of caching in scope of `actions/setup-node` action. The purpose of this integration is covering ~90% of basic use-cases. If user needs flexible customization, we should advice them to use `actions/cache` directly. +We don't pursue the goal to provide wide customization of caching in scope of `actions/setup-node` action. The purpose of this integration is covering ~90% of basic use-cases. If user needs flexible customization, we should advice them to use `actions/cache` directly. # Decision - Add `cache` input parameter to `actions/setup-node`. For now, input will accept the following values: @@ -56,4 +56,4 @@ steps: # Release process As soon as functionality is implemented, we will release minor update of action. No need to bump major version since there are no breaking changes for existing users. -After that, we will update [starter-workflows](https://github.com/actions/starter-workflows/blob/main/ci/node.js.yml) and [GitHub Action documentation](https://docs.github.com/en/actions/guides/building-and-testing-nodejs#example-caching-dependencies). \ No newline at end of file +After that, we will update [starter-workflows](https://github.com/actions/starter-workflows/blob/main/ci/node.js.yml) and [GitHub Action documentation](https://docs.github.com/en/actions/guides/building-and-testing-nodejs#example-caching-dependencies). From 59294710198cfb7f55d398c98de60d13e53d11cb Mon Sep 17 00:00:00 2001 From: Maxim Lobanov Date: Wed, 2 Jun 2021 15:52:17 +0300 Subject: [PATCH 54/55] Update 0000-caching-dependencies.md --- docs/adrs/0000-caching-dependencies.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/adrs/0000-caching-dependencies.md b/docs/adrs/0000-caching-dependencies.md index 5a88292..99a6932 100644 --- a/docs/adrs/0000-caching-dependencies.md +++ b/docs/adrs/0000-caching-dependencies.md @@ -13,26 +13,27 @@ Integration of caching functionality into `actions/setup-node` action will bring - Simplify YAML pipelines because no need additional steps to enable caching - More users will use cache for Node.js so more customers will have fast builds! -As the first stage, we will add support for NPM dependencies caching. We can consider adding the same functionality for Yarn later. +We will add support for NPM and Yarn dependencies caching. +As the first stage, we won't support custom locations for `package-lock.json`, `yarn.lock` files and action will work only when files are located in repository root. We don't pursue the goal to provide wide customization of caching in scope of `actions/setup-node` action. The purpose of this integration is covering ~90% of basic use-cases. If user needs flexible customization, we should advice them to use `actions/cache` directly. # Decision - Add `cache` input parameter to `actions/setup-node`. For now, input will accept the following values: - `npm` - enable caching for npm dependencies + - `yarn` - enable caching for yarn dependencies - `''` - disable caching (default value) - - Potentially, we will be able to extend this input to support Yarn - Cache feature will be disabled by default to make sure that we don't break existing customers. We will consider enabling cache by default in next major release (`v3`) -- Add optional input `package-lock-path` that will allow to specify path to `package-lock.json` file path: - - If input is not defined, action will try to search `package-lock.json` or `yarn.lock` (npm 7.x supports `yarn.lock` files) files in the repository root and throw error if no one is found - - If input contains file path, action will use the specified file - - if input contains wildcards (like `**/package-lock.json`), hash of multiple files will be used -- The hash of file provided in `package-lock-path` input will be used as cache key (the same approach like [actions/cache](https://github.com/actions/cache/blob/main/examples.md#node---npm) recommends) +- Action will try to search `package-lock.json` or `yarn.lock` (npm 7.x supports `yarn.lock` files) files in the repository root and throw error if no one is found +- The hash of found file will be used as cache key (the same approach like [actions/cache](https://github.com/actions/cache/blob/main/examples.md#node---npm) recommends) - The following key cache will be used `${{ runner.os }}-npm-${{ hashFiles('') }}` -- Action will cache global npm cache directory (retrieved via `npm config get cache`) +- Action will cache global cache: + - Npm (retrieved via `npm config get cache`) + - Yarn 1 (retrieved via `yarn cache dir`) + - Yarn 2 (retrieved via `yarn config get cacheFolder`) # Example of real use-cases -Default use case when `package-lock.json` or `yarn.lock` are located in repository root: +Npm package manager: ```yml steps: - uses: actions/checkout@v2 @@ -42,15 +43,14 @@ steps: cache: npm ``` -More flexible solution for monorepos: +Yarn package manager: ```yml steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v2 with: node-version: '14' - cache: npm - package-lock-path: service1/yarn.lock + cache: yarn ``` # Release process From 87a21fa69e08d3dae4d15991a0c39506f26b2584 Mon Sep 17 00:00:00 2001 From: MaksimZhukov <46996400+MaksimZhukov@users.noreply.github.com> Date: Tue, 29 Jun 2021 12:33:36 +0300 Subject: [PATCH 55/55] Automate releasing new action versions --- .../workflows/release-new-action-version.yml | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 .github/workflows/release-new-action-version.yml diff --git a/.github/workflows/release-new-action-version.yml b/.github/workflows/release-new-action-version.yml new file mode 100644 index 0000000..908248b --- /dev/null +++ b/.github/workflows/release-new-action-version.yml @@ -0,0 +1,27 @@ +name: Release new action version +on: + release: + types: [released] + workflow_dispatch: + inputs: + TAG_NAME: + description: 'Tag name that the major tag will point to' + required: true + +env: + TAG_NAME: ${{ github.event.inputs.TAG_NAME || github.event.release.tag_name }} +permissions: + contents: write + +jobs: + update_tag: + name: Update the major tag to include the ${{ github.event.inputs.TAG_NAME || github.event.release.tag_name }} changes + environment: + name: releaseNewActionVersion + runs-on: ubuntu-latest + steps: + - name: Update the ${{ env.TAG_NAME }} tag + uses: actions/publish-action@v0.1.0 + with: + source-tag: ${{ env.TAG_NAME }} + slack-webhook: ${{ secrets.SLACK_WEBHOOK }}