Socket
Socket
Sign inDemoInstall

@commitlint/travis-cli

Package Overview
Dependencies
Maintainers
1
Versions
124
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@commitlint/travis-cli - npm Package Compare versions

Comparing version 5.1.1 to 5.2.0

11

CHANGELOG.md

@@ -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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc