From 437dda2e41319caf33b09277f965edf5f94710b6 Mon Sep 17 00:00:00 2001 From: Mike Chen Date: Sun, 4 Feb 2018 15:35:36 -0800 Subject: [PATCH 1/2] fix(cli): fail when `yarn add`ing Github package with no version (#5292) --- __tests__/commands/add.js | 10 ++++ ...0711550bd66139ad4cf8e0b0bba33d6afbf93d.bin | Bin 0 -> 23424 bytes .../example-yarn-package.git/info/refs.bin | Bin 1007 -> 1154 bytes .../package.json.bin | 49 ++++++++++++++++++ src/package-request.js | 4 ++ src/reporters/lang/en.js | 1 + src/util/git.js | 2 +- 7 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 __tests__/fixtures/request-cache/GET/codeload.github.com/yarnpkg/example-yarn-package/tar.gz/2a0711550bd66139ad4cf8e0b0bba33d6afbf93d.bin create mode 100644 __tests__/fixtures/request-cache/GET/raw.githubusercontent.com/yarnpkg/example-yarn-package/2a0711550bd66139ad4cf8e0b0bba33d6afbf93d/package.json.bin diff --git a/__tests__/commands/add.js b/__tests__/commands/add.js index 1d01301a39..3cb7e72bf1 100644 --- a/__tests__/commands/add.js +++ b/__tests__/commands/add.js @@ -114,6 +114,16 @@ test.concurrent('install from github', async () => { await runAdd(['substack/node-mkdirp#master'], {}, 'install-github'); }); +test.concurrent('install from github with invalid version should fail', async () => { + let message = ''; + try { + await runAdd(['yarnpkg/example-yarn-package#invalid-package-json-version'], {}, 'install-github'); + } catch (err) { + message = err.message; + } + expect(message).toEqual(expect.stringContaining('invalid package version')); +}); + test.concurrent('install with --dev flag', async () => { await runAdd(['left-pad@1.1.0'], {dev: true}, 'add-with-flag', async config => { const lockfile = explodeLockfile(await fs.readFile(path.join(config.cwd, 'yarn.lock'))); diff --git a/__tests__/fixtures/request-cache/GET/codeload.github.com/yarnpkg/example-yarn-package/tar.gz/2a0711550bd66139ad4cf8e0b0bba33d6afbf93d.bin b/__tests__/fixtures/request-cache/GET/codeload.github.com/yarnpkg/example-yarn-package/tar.gz/2a0711550bd66139ad4cf8e0b0bba33d6afbf93d.bin new file mode 100644 index 0000000000000000000000000000000000000000..a44d39fb354e97120270d235273998be98011289 GIT binary patch literal 23424 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 PE&eiD1dty$<)-`v4Ms&| delta 91 zcmZqTe9yi?mQl&o)Wyik*vZk@%E-XU)Wyu$%Gk}>$i&sr%GA-wz|_&wX|g?|7rPlR umw};y+2jd~-?_}w43kaGlMOA6Cr@AsWll@woovVam(#!isD_t|mkR(HLKY|h diff --git a/__tests__/fixtures/request-cache/GET/raw.githubusercontent.com/yarnpkg/example-yarn-package/2a0711550bd66139ad4cf8e0b0bba33d6afbf93d/package.json.bin b/__tests__/fixtures/request-cache/GET/raw.githubusercontent.com/yarnpkg/example-yarn-package/2a0711550bd66139ad4cf8e0b0bba33d6afbf93d/package.json.bin new file mode 100644 index 0000000000..99d6c6ef2a --- /dev/null +++ b/__tests__/fixtures/request-cache/GET/raw.githubusercontent.com/yarnpkg/example-yarn-package/2a0711550bd66139ad4cf8e0b0bba33d6afbf93d/package.json.bin @@ -0,0 +1,49 @@ +HTTP/1.1 200 OK +Content-Security-Policy: default-src 'none'; style-src 'unsafe-inline'; sandbox +Strict-Transport-Security: max-age=31536000 +X-Content-Type-Options: nosniff +X-Frame-Options: deny +X-XSS-Protection: 1; mode=block +ETag: "d5561550f2f68bb15a0801ccab1c6f5362959c40" +Content-Type: text/plain; charset=utf-8 +Cache-Control: max-age=300 +X-Geo-Block-List: +X-GitHub-Request-Id: 49EE:29366:1920CD4:1A583B0:5A779863 +Content-Length: 463 +Accept-Ranges: bytes +Date: Sun, 04 Feb 2018 23:33:57 GMT +Via: 1.1 varnish +Connection: keep-alive +X-Served-By: cache-pao17421-PAO +X-Cache: MISS +X-Cache-Hits: 0 +X-Timer: S1517787238.609785,VS0,VE119 +Vary: Authorization,Accept-Encoding +Access-Control-Allow-Origin: * +X-Fastly-Request-ID: b02c8764f6d89b30ee060159193da00b51b9fbd8 +Expires: Sun, 04 Feb 2018 23:38:57 GMT +Source-Age: 0 + +{ + "name": "example-yarn-package", + "description": "An example package to demonstrate Yarn", + "main": "index.js", + "repository": { + "url": "github.com/yarnpkg/example-yarn-package", + "type": "git" + }, + "scripts": { + "test": "jest" + }, + "author": "Yarn Contributors", + "license": "BSD-2-Clause", + "dependencies": { + "lodash": "^4.16.2" + }, + "devDependencies": { + "jest-cli": "15.1.1" + }, + "jest": { + "testEnvironment": "node" + } +} diff --git a/src/package-request.js b/src/package-request.js index e2ae710dbd..2e7bf4ac96 100644 --- a/src/package-request.js +++ b/src/package-request.js @@ -219,6 +219,10 @@ export default class PackageRequest { // find version info for this package pattern const info: Manifest = await this.findVersionInfo(); + if (!semver.valid(info.version)) { + throw new MessageError(this.reporter.lang('invalidPackageVersion', info.name, info.version)); + } + info.fresh = fresh; cleanDependencies(info, false, this.reporter, () => { // swallow warnings diff --git a/src/reporters/lang/en.js b/src/reporters/lang/en.js index 0fc262aa51..54089c6700 100644 --- a/src/reporters/lang/en.js +++ b/src/reporters/lang/en.js @@ -89,6 +89,7 @@ const messages = { invalidHostedGitFragment: 'Invalid hosted git fragment $0.', invalidFragment: 'Invalid fragment $0.', invalidPackageName: 'Invalid package name.', + invalidPackageVersion: "Can't add $0: invalid package version $1.", couldntFindManifestIn: "Couldn't find manifest in $0.", shrinkwrapWarning: 'npm-shrinkwrap.json found. This will not be updated or respected. See https://yarnpkg.com/en/docs/migrating-from-npm for more information.', diff --git a/src/util/git.js b/src/util/git.js index 0492d1aa33..23b7f8d3f1 100644 --- a/src/util/git.js +++ b/src/util/git.js @@ -473,7 +473,7 @@ export default class Git implements GitRefResolvingInterface { }); if (!resolvedResult) { throw new MessageError( - this.reporter.lang('couldntFindMatch', version, Object.keys(refs).join(','), this.gitUrl.repository), + this.reporter.lang('couldntFindMatch', version, Array.from(refs.keys()).join(','), this.gitUrl.repository), ); } From 106e38437b06af658804ae118d6ca65e6632cc6c Mon Sep 17 00:00:00 2001 From: Mike Chen Date: Mon, 5 Feb 2018 22:41:38 -0800 Subject: [PATCH 2/2] Attempt to re-trigger AppVeyor build