diff --git a/src/lib/commits.js b/src/lib/commits.js new file mode 100644 index 00000000..e844545e --- /dev/null +++ b/src/lib/commits.js @@ -0,0 +1,25 @@ +const { exec } = require('child_process') + +module.exports = function (results, cb) { + const from = results.lastRelease.gitHead + const range = (from ? from + '..' : '') + 'HEAD' + + exec( + `git log -E --format=%H==SPLIT==%B==END== ${range}`, + (err, stdout) => { + if (err) return cb(err) + + cb(null, String(stdout).split('==END==\n') + + .filter((raw) => !!raw.trim()) + + .map((raw) => { + const data = raw.split('==SPLIT==') + return { + hash: data[0], + message: data[1] + } + })) + } + ) +}