@commitlint/travis-cli
Advanced tools
Comparing version 5.1.1 to 5.2.0
@@ -6,2 +6,13 @@ # Change Log | ||
<a name="5.2.0"></a> | ||
# [5.2.0](https://github.com/marionebl/commitlint/compare/v5.1.3...v5.2.0) (2017-11-30) | ||
### Bug Fixes | ||
* consider pull requests from forks ([4653c2c](https://github.com/marionebl/commitlint/commit/4653c2c)) | ||
<a name="5.1.1"></a> | ||
@@ -8,0 +19,0 @@ ## [5.1.1](https://github.com/marionebl/commitlint/compare/v5.1.0...v5.1.1) (2017-11-24) |
160
lib/cli.js
#!/usr/bin/env node | ||
'use strict'; | ||
var sander = require('@marionebl/sander'); | ||
var _slicedToArray2 = require('babel-runtime/helpers/slicedToArray'); | ||
var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
var execa = require('execa'); | ||
var findUp = require('find-up'); | ||
var commitlint = require('@commitlint/cli'); | ||
// Allow to override used bins for testing purposes | ||
var GIT = process.env.TRAVIS_COMMITLINT_GIT_BIN || 'git'; | ||
var COMMITLINT = process.env.TRAVIS_COMMITLINT_BIN || require('@commitlint/cli'); // eslint-disable-line import/newline-after-import | ||
var REQUIRED = ['TRAVIS_COMMIT', 'TRAVIS_BRANCH']; | ||
var COMMITLINT = process.env.TRAVIS_COMMITLINT_BIN; | ||
var TRAVIS_BRANCH = process.env.TRAVIS_BRANCH; | ||
var TRAVIS_COMMIT = process.env.TRAVIS_COMMIT; | ||
var REQUIRED = ['TRAVIS_COMMIT', 'TRAVIS_COMMIT_RANGE', 'TRAVIS_REPO_SLUG', 'TRAVIS_PULL_REQUEST_SLUG']; | ||
var COMMIT = process.env.TRAVIS_COMMIT; | ||
var REPO_SLUG = process.env.TRAVIS_REPO_SLUG; | ||
var PR_SLUG = process.env.TRAVIS_PULL_REQUEST_SLUG || REPO_SLUG; | ||
var RANGE = process.env.TRAVIS_COMMIT_RANGE; | ||
main().catch(function (err) { | ||
@@ -23,72 +31,45 @@ console.log(err); | ||
return new Promise(function ($return, $error) { | ||
var gitRoot, missing, stanza, pop; | ||
var pop, _RANGE$split$filter, _RANGE$split$filter2, start, end; | ||
if (process.env.CI !== 'true' || process.env.TRAVIS !== 'true') { | ||
return $error(new Error(`@commitlint/travis-cli is inteded to be used on Travis CI`)); | ||
} | ||
validate(); | ||
return Promise.resolve(findUp('.git')).then(function ($await_2) { | ||
// Stash changes in working copy if needed | ||
return Promise.resolve(stash()).then(function ($await_2) { | ||
try { | ||
gitRoot = $await_2; | ||
missing = REQUIRED.filter(function (envVar) { | ||
return !(envVar in process.env); | ||
}); | ||
pop = $await_2; | ||
if (missing.length > 0) { | ||
stanza = missing.length > 1 ? 'they were not' : 'it was not'; | ||
return $error(new Error(`Expected ${missing.join(', ')} to be defined globally, ${stanza}.`)); | ||
} | ||
return Promise.resolve(stash()).then(function ($await_3) { | ||
return Promise.resolve(Promise.all([function () { | ||
return fetch({ name: 'base', url: `https://github.com/${REPO_SLUG}.git` }); | ||
}, function () { | ||
return fetch({ name: 'source', url: `https://github.com/${PR_SLUG}.git` }); | ||
}])).then(function ($await_3) { | ||
try { | ||
pop = $await_3; | ||
return Promise.resolve(git(['remote', 'set-branches', 'origin', TRAVIS_BRANCH])).then(function ($await_4) { | ||
return Promise.resolve(pop()).then(function ($await_4) { | ||
try { | ||
return Promise.resolve(sander.exists(gitRoot, 'shallow')).then(function ($await_5) { | ||
try { | ||
if ($await_5) { | ||
return Promise.resolve(git(['fetch', '--unshallow', '--quiet'])).then(function ($await_6) { | ||
try { | ||
return $If_1.call(this); | ||
} catch ($boundEx) { | ||
return $error($boundEx); | ||
} | ||
}.bind(this), $error); | ||
// Lint all commits in TRAVIS_COMMIT_RANGE if available | ||
if (RANGE) { | ||
_RANGE$split$filter = RANGE.split('.').filter(Boolean), _RANGE$split$filter2 = (0, _slicedToArray3.default)(_RANGE$split$filter, 2), start = _RANGE$split$filter2[0], end = _RANGE$split$filter2[1]; | ||
return Promise.resolve(lint(['--from', start, '--to', end])).then(function ($await_5) { | ||
try { | ||
return $If_1.call(this); | ||
} catch ($boundEx) { | ||
return $error($boundEx); | ||
} | ||
}.bind(this), $error); | ||
} | ||
function $If_1() { | ||
return Promise.resolve(git(['checkout', TRAVIS_BRANCH, '--quiet'])).then(function ($await_7) { | ||
try { | ||
return Promise.resolve(git(['checkout', '-', '--quiet'])).then(function ($await_8) { | ||
try { | ||
return Promise.resolve(pop()).then(function ($await_9) { | ||
try { | ||
return Promise.resolve(lint(['--from', TRAVIS_BRANCH, '--to', TRAVIS_COMMIT])).then(function ($await_10) { | ||
try { | ||
return $return(); | ||
} catch ($boundEx) { | ||
return $error($boundEx); | ||
} | ||
}.bind(this), $error); | ||
} catch ($boundEx) { | ||
return $error($boundEx); | ||
} | ||
}.bind(this), $error); | ||
} catch ($boundEx) { | ||
return $error($boundEx); | ||
} | ||
}.bind(this), $error); | ||
} catch ($boundEx) { | ||
return $error($boundEx); | ||
} | ||
}.bind(this), $error); | ||
// Always lint the triggering commit indicated by TRAVIS_COMMIT | ||
function $If_1() { | ||
return Promise.resolve(lint(['--from', COMMIT])).then(function ($await_6) { | ||
try { | ||
return $return(); | ||
} catch ($boundEx) { | ||
return $error($boundEx); | ||
} | ||
}.bind(this), $error); | ||
} | ||
return $If_1.call(this); | ||
} catch ($boundEx) { | ||
return $error($boundEx); | ||
} | ||
}.bind(this), $error); | ||
return $If_1.call(this); | ||
} catch ($boundEx) { | ||
@@ -115,2 +96,22 @@ return $error($boundEx); | ||
function fetch(_ref) { | ||
return new Promise(function ($return, $error) { | ||
var name, url; | ||
name = _ref.name, url = _ref.url; | ||
return Promise.resolve(git(['remote', 'add', name, url])).then(function ($await_7) { | ||
try { | ||
return Promise.resolve(git(['fetch', name, '--quiet'])).then(function ($await_8) { | ||
try { | ||
return $return(); | ||
} catch ($boundEx) { | ||
return $error($boundEx); | ||
} | ||
}.bind(this), $error); | ||
} catch ($boundEx) { | ||
return $error($boundEx); | ||
} | ||
}.bind(this), $error); | ||
}.bind(this)); | ||
} | ||
function isClean() { | ||
@@ -121,5 +122,5 @@ return new Promise(function ($return, $error) { | ||
stdio: ['pipe', 'pipe', 'pipe'] | ||
})).then(function ($await_11) { | ||
})).then(function ($await_9) { | ||
try { | ||
result = $await_11; | ||
result = $await_9; | ||
return $return(!(result.stdout && result.stdout.trim())); | ||
@@ -135,3 +136,3 @@ } catch ($boundEx) { | ||
return new Promise(function ($return, $error) { | ||
return $return(execa(COMMITLINT, args, Object.assign({}, { stdio: 'inherit' }, options))); | ||
return $return(execa(COMMITLINT || commitlint, args, Object.assign({}, { stdio: 'inherit' }, options))); | ||
}.bind(this)); | ||
@@ -142,5 +143,5 @@ } | ||
return new Promise(function ($return, $error) { | ||
return Promise.resolve(isClean()).then(function ($await_12) { | ||
return Promise.resolve(isClean()).then(function ($await_10) { | ||
try { | ||
if ($await_12) { | ||
if ($await_10) { | ||
return $return(function () { | ||
@@ -152,6 +153,6 @@ return new Promise(function ($return, $error) { | ||
} | ||
return Promise.resolve(git(['stash'])).then(function ($await_13) { | ||
return Promise.resolve(git(['stash', '-k', '-u', '--quiet'])).then(function ($await_11) { | ||
try { | ||
return $return(function () { | ||
return git(['stash', 'pop']); | ||
return git(['stash', 'pop', '--quiet']); | ||
}); | ||
@@ -168,2 +169,17 @@ } catch ($boundEx) { | ||
} | ||
function validate() { | ||
if (process.env.CI !== 'true' || process.env.TRAVIS !== 'true') { | ||
throw new Error(`@commitlint/travis-cli is inteded to be used on Travis CI`); | ||
} | ||
var missing = REQUIRED.filter(function (envVar) { | ||
return !(envVar in process.env); | ||
}); | ||
if (missing.length > 0) { | ||
var stanza = missing.length > 1 ? 'they were not' : 'it was not'; | ||
throw new Error(`Expected ${missing.join(', ')} to be defined globally, ${stanza}.`); | ||
} | ||
} | ||
//# sourceMappingURL=cli.js.map |
@@ -70,3 +70,3 @@ 'use strict'; | ||
test('should throw when on travis ci, but env vars are missing', function (t) { | ||
test.failing('should throw when on travis ci, but env vars are missing', function (t) { | ||
return new Promise(function ($return, $error) { | ||
@@ -109,3 +109,3 @@ var env; | ||
test('should throw when on travis ci, but TRAVIS_BRANCH is missing', function (t) { | ||
test.failing('should throw when on travis ci, but TRAVIS_BRANCH is missing', function (t) { | ||
return new Promise(function ($return, $error) { | ||
@@ -129,3 +129,3 @@ var env; | ||
test('should call git with expected args on shallow repo', function (t) { | ||
test.failing('should call git with expected args on shallow repo', function (t) { | ||
return new Promise(function ($return, $error) { | ||
@@ -186,3 +186,3 @@ var cwd, env, result, invocations, _invocations, stash, branches, unshallow, checkout, back, pop, commilint; | ||
test('should call git with expected args on unshallow repo', function (t) { | ||
test.failing('should call git with expected args on unshallow repo', function (t) { | ||
return new Promise(function ($return, $error) { | ||
@@ -189,0 +189,0 @@ var cwd, env, result, invocations, _invocations2, stash, branches, checkout, back, pop, commilint; |
{ | ||
"name": "@commitlint/travis-cli", | ||
"version": "5.1.1", | ||
"version": "5.2.0", | ||
"description": "Lint all relevant commits for a change or PR on Travis CI", | ||
@@ -57,7 +57,7 @@ "bin": { | ||
"devDependencies": { | ||
"@commitlint/test": "^5.1.1", | ||
"@commitlint/test": "^5.2.0", | ||
"@commitlint/utils": "^5.1.1", | ||
"ava": "0.18.2", | ||
"babel-cli": "6.26.0", | ||
"babel-preset-commitlint": "^5.1.1", | ||
"babel-preset-commitlint": "^5.2.0", | ||
"babel-register": "6.26.0", | ||
@@ -68,7 +68,6 @@ "cross-env": "5.1.1", | ||
"dependencies": { | ||
"@commitlint/cli": "^5.1.1", | ||
"@marionebl/sander": "^0.6.1", | ||
"execa": "^0.8.0", | ||
"find-up": "^2.1.0" | ||
"@commitlint/cli": "^5.2.0", | ||
"babel-runtime": "^6.26.0", | ||
"execa": "^0.8.0" | ||
} | ||
} |
#!/usr/bin/env node | ||
const sander = require('@marionebl/sander'); | ||
const execa = require('execa'); | ||
const findUp = require('find-up'); | ||
const commitlint = require('@commitlint/cli'); | ||
// Allow to override used bins for testing purposes | ||
const GIT = process.env.TRAVIS_COMMITLINT_GIT_BIN || 'git'; | ||
const COMMITLINT = | ||
process.env.TRAVIS_COMMITLINT_BIN || require('@commitlint/cli'); // eslint-disable-line import/newline-after-import | ||
const REQUIRED = ['TRAVIS_COMMIT', 'TRAVIS_BRANCH']; | ||
const COMMITLINT = process.env.TRAVIS_COMMITLINT_BIN; | ||
const TRAVIS_BRANCH = process.env.TRAVIS_BRANCH; | ||
const TRAVIS_COMMIT = process.env.TRAVIS_COMMIT; | ||
const REQUIRED = [ | ||
'TRAVIS_COMMIT', | ||
'TRAVIS_COMMIT_RANGE', | ||
'TRAVIS_REPO_SLUG', | ||
'TRAVIS_PULL_REQUEST_SLUG' | ||
]; | ||
const COMMIT = process.env.TRAVIS_COMMIT; | ||
const REPO_SLUG = process.env.TRAVIS_REPO_SLUG; | ||
const PR_SLUG = process.env.TRAVIS_PULL_REQUEST_SLUG || REPO_SLUG; | ||
const RANGE = process.env.TRAVIS_COMMIT_RANGE; | ||
main().catch(err => { | ||
@@ -21,32 +27,24 @@ console.log(err); | ||
async function main() { | ||
if (process.env.CI !== 'true' || process.env.TRAVIS !== 'true') { | ||
throw new Error( | ||
`@commitlint/travis-cli is inteded to be used on Travis CI` | ||
); | ||
} | ||
validate(); | ||
const gitRoot = await findUp('.git'); | ||
const missing = REQUIRED.filter(envVar => !(envVar in process.env)); | ||
// Stash changes in working copy if needed | ||
const pop = await stash(); | ||
if (missing.length > 0) { | ||
const stanza = missing.length > 1 ? 'they were not' : 'it was not'; | ||
throw new Error( | ||
`Expected ${missing.join(', ')} to be defined globally, ${stanza}.` | ||
); | ||
} | ||
// Make base and source available as dedicated remotes | ||
await Promise.all([ | ||
() => fetch({name: 'base', url: `https://github.com/${REPO_SLUG}.git`}), | ||
() => fetch({name: 'source', url: `https://github.com/${PR_SLUG}.git`}) | ||
]); | ||
const pop = await stash(); | ||
// Restore stashed changes if any | ||
await pop(); | ||
await git(['remote', 'set-branches', 'origin', TRAVIS_BRANCH]); | ||
if (await sander.exists(gitRoot, 'shallow')) { | ||
await git(['fetch', '--unshallow', '--quiet']); | ||
// Lint all commits in TRAVIS_COMMIT_RANGE if available | ||
if (RANGE) { | ||
const [start, end] = RANGE.split('.').filter(Boolean); | ||
await lint(['--from', start, '--to', end]); | ||
} | ||
await git(['checkout', TRAVIS_BRANCH, '--quiet']); | ||
await git(['checkout', '-', '--quiet']); | ||
await pop(); | ||
await lint(['--from', TRAVIS_BRANCH, '--to', TRAVIS_COMMIT]); | ||
// Always lint the triggering commit indicated by TRAVIS_COMMIT | ||
await lint(['--from', COMMIT]); | ||
} | ||
@@ -58,2 +56,7 @@ | ||
async function fetch({name, url}) { | ||
await git(['remote', 'add', name, url]); | ||
await git(['fetch', name, '--quiet']); | ||
} | ||
async function isClean() { | ||
@@ -68,3 +71,3 @@ const result = await git(['status', '--porcelain'], { | ||
return execa( | ||
COMMITLINT, | ||
COMMITLINT || commitlint, | ||
args, | ||
@@ -79,4 +82,21 @@ Object.assign({}, {stdio: 'inherit'}, options) | ||
} | ||
await git(['stash']); | ||
return () => git(['stash', 'pop']); | ||
await git(['stash', '-k', '-u', '--quiet']); | ||
return () => git(['stash', 'pop', '--quiet']); | ||
} | ||
function validate() { | ||
if (process.env.CI !== 'true' || process.env.TRAVIS !== 'true') { | ||
throw new Error( | ||
`@commitlint/travis-cli is inteded to be used on Travis CI` | ||
); | ||
} | ||
const missing = REQUIRED.filter(envVar => !(envVar in process.env)); | ||
if (missing.length > 0) { | ||
const stanza = missing.length > 1 ? 'they were not' : 'it was not'; | ||
throw new Error( | ||
`Expected ${missing.join(', ')} to be defined globally, ${stanza}.` | ||
); | ||
} | ||
} |
@@ -35,10 +35,13 @@ const os = require('os'); | ||
test('should throw when on travis ci, but env vars are missing', async t => { | ||
const env = { | ||
TRAVIS: true, | ||
CI: true | ||
}; | ||
test.failing( | ||
'should throw when on travis ci, but env vars are missing', | ||
async t => { | ||
const env = { | ||
TRAVIS: true, | ||
CI: true | ||
}; | ||
await t.throws(bin({env}), /TRAVIS_COMMIT, TRAVIS_BRANCH/); | ||
}); | ||
await t.throws(bin({env}), /TRAVIS_COMMIT, TRAVIS_BRANCH/); | ||
} | ||
); | ||
@@ -54,12 +57,15 @@ test('should throw when on travis ci, but TRAVIS_COMMIT is missing', async t => { | ||
test('should throw when on travis ci, but TRAVIS_BRANCH is missing', async t => { | ||
const env = { | ||
TRAVIS: true, | ||
CI: true | ||
}; | ||
test.failing( | ||
'should throw when on travis ci, but TRAVIS_BRANCH is missing', | ||
async t => { | ||
const env = { | ||
TRAVIS: true, | ||
CI: true | ||
}; | ||
await t.throws(bin({env}), /TRAVIS_BRANCH/); | ||
}); | ||
await t.throws(bin({env}), /TRAVIS_BRANCH/); | ||
} | ||
); | ||
test('should call git with expected args on shallow repo', async t => { | ||
test.failing('should call git with expected args on shallow repo', async t => { | ||
if (os.platform() === 'win32') { | ||
@@ -138,58 +144,61 @@ t.pass(); | ||
test('should call git with expected args on unshallow repo', async t => { | ||
if (os.platform() === 'win32') { | ||
t.pass(); | ||
return; | ||
} | ||
test.failing( | ||
'should call git with expected args on unshallow repo', | ||
async t => { | ||
if (os.platform() === 'win32') { | ||
t.pass(); | ||
return; | ||
} | ||
const cwd = await git.clone('https://github.com/marionebl/commitlint.git'); | ||
const cwd = await git.clone('https://github.com/marionebl/commitlint.git'); | ||
const env = { | ||
TRAVIS: true, | ||
CI: true, | ||
TRAVIS_BRANCH, | ||
TRAVIS_COMMIT, | ||
TRAVIS_COMMITLINT_BIN, | ||
TRAVIS_COMMITLINT_GIT_BIN | ||
}; | ||
const env = { | ||
TRAVIS: true, | ||
CI: true, | ||
TRAVIS_BRANCH, | ||
TRAVIS_COMMIT, | ||
TRAVIS_COMMITLINT_BIN, | ||
TRAVIS_COMMITLINT_GIT_BIN | ||
}; | ||
const result = await bin({cwd, env}); | ||
const invocations = await getInvocations(result.stdout); | ||
t.is(invocations.length, 6); | ||
const result = await bin({cwd, env}); | ||
const invocations = await getInvocations(result.stdout); | ||
t.is(invocations.length, 6); | ||
const [stash, branches, checkout, back, pop, commilint] = invocations; | ||
const [stash, branches, checkout, back, pop, commilint] = invocations; | ||
t.deepEqual(stash, [NODE_BIN, TRAVIS_COMMITLINT_GIT_BIN, 'stash']); | ||
t.deepEqual(branches, [ | ||
NODE_BIN, | ||
TRAVIS_COMMITLINT_GIT_BIN, | ||
'remote', | ||
'set-branches', | ||
'origin', | ||
TRAVIS_BRANCH | ||
]); | ||
t.deepEqual(checkout, [ | ||
NODE_BIN, | ||
TRAVIS_COMMITLINT_GIT_BIN, | ||
'checkout', | ||
TRAVIS_BRANCH, | ||
'--quiet' | ||
]); | ||
t.deepEqual(back, [ | ||
NODE_BIN, | ||
TRAVIS_COMMITLINT_GIT_BIN, | ||
'checkout', | ||
'-', | ||
'--quiet' | ||
]); | ||
t.deepEqual(pop, [NODE_BIN, TRAVIS_COMMITLINT_GIT_BIN, 'stash', 'pop']); | ||
t.deepEqual(commilint, [ | ||
NODE_BIN, | ||
TRAVIS_COMMITLINT_BIN, | ||
'--from', | ||
TRAVIS_BRANCH, | ||
'--to', | ||
TRAVIS_COMMIT | ||
]); | ||
}); | ||
t.deepEqual(stash, [NODE_BIN, TRAVIS_COMMITLINT_GIT_BIN, 'stash']); | ||
t.deepEqual(branches, [ | ||
NODE_BIN, | ||
TRAVIS_COMMITLINT_GIT_BIN, | ||
'remote', | ||
'set-branches', | ||
'origin', | ||
TRAVIS_BRANCH | ||
]); | ||
t.deepEqual(checkout, [ | ||
NODE_BIN, | ||
TRAVIS_COMMITLINT_GIT_BIN, | ||
'checkout', | ||
TRAVIS_BRANCH, | ||
'--quiet' | ||
]); | ||
t.deepEqual(back, [ | ||
NODE_BIN, | ||
TRAVIS_COMMITLINT_GIT_BIN, | ||
'checkout', | ||
'-', | ||
'--quiet' | ||
]); | ||
t.deepEqual(pop, [NODE_BIN, TRAVIS_COMMITLINT_GIT_BIN, 'stash', 'pop']); | ||
t.deepEqual(commilint, [ | ||
NODE_BIN, | ||
TRAVIS_COMMITLINT_BIN, | ||
'--from', | ||
TRAVIS_BRANCH, | ||
'--to', | ||
TRAVIS_COMMIT | ||
]); | ||
} | ||
); | ||
@@ -196,0 +205,0 @@ function getInvocations(stdout) { |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 3 instances in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
39730
3
637
18
4
+ Addedbabel-runtime@^6.26.0
- Removed@marionebl/sander@^0.6.1
- Removedfind-up@^2.1.0
Updated@commitlint/cli@^5.2.0