jira-precommit-hook
Version:
Git commit hook to verify commit messages are tagged with a JIRA issue number
87 lines (64 loc) • 2.88 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _regenerator = require('babel-runtime/regenerator');
var _regenerator2 = _interopRequireDefault(_regenerator);
var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
var _fsPromise = require('fs-promise');
var _fsPromise2 = _interopRequireDefault(_fsPromise);
var _fsUtils = require('./fs-utils.js');
var _fsUtils2 = _interopRequireDefault(_fsUtils);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = function () {
var _ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee(_ref2) {
var _ref2$fileSystem = _ref2.fileSystem;
var fileSystem = _ref2$fileSystem === undefined ? _fsPromise2.default : _ref2$fileSystem;
var _ref2$fileSystemUtils = _ref2.fileSystemUtils;
var fileSystemUtils = _ref2$fileSystemUtils === undefined ? _fsUtils2.default : _ref2$fileSystemUtils;
var _ref2$log = _ref2.log;
var log = _ref2$log === undefined ? console.log : _ref2$log;
var filePath, fileResult, jsonResult;
return _regenerator2.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.prev = 0;
filePath = fileSystemUtils.findParentFolder(process.cwd(), 'hubot-deployments-config.json');
_context.next = 4;
return fileSystem.readFile(filePath);
case 4:
fileResult = _context.sent;
jsonResult = JSON.parse(fileResult);
return _context.abrupt('return', !!jsonResult);
case 9:
_context.prev = 9;
_context.t0 = _context['catch'](0);
if (!(_context.t0.message.indexOf('Unexpected token') > -1)) {
_context.next = 13;
break;
}
throw new Error('hubot-deployments-config.json is not a valid JSON file. Committing will ' + ('not succeed until the JSON is fixed. ' + _context.t0.message));
case 13:
if (!(_context.t0.message.indexOf('Cannot find') > -1 && _context.t0.message.indexOf('hubot-deployments-config.json') > -1)) {
_context.next = 16;
break;
}
log('No hubot-deployments-config.json set up for this repository.');
return _context.abrupt('return', false);
case 16:
throw _context.t0;
case 17:
case 'end':
return _context.stop();
}
}
}, _callee, this, [[0, 9]]);
}));
function checkValidJSON(_x) {
return _ref.apply(this, arguments);
}
return checkValidJSON;
}(); // eslint-disable-line id-length
module.exports = exports['default'];