1 | 'use strict'
|
2 |
|
3 | const debug = require('debug')('commit-info')
|
4 | const {
|
5 | getSubject,
|
6 | getBody,
|
7 | getMessage,
|
8 | getEmail,
|
9 | getAuthor,
|
10 | getSha,
|
11 | getTimestamp,
|
12 | getRemoteOrigin
|
13 | } = require('./git-api')
|
14 | const { getBranch, getCommitInfoFromEnvironment } = require('./utils')
|
15 | const Promise = require('bluebird')
|
16 | const { mergeWith, or } = require('ramda')
|
17 |
|
18 | function commitInfo (folder) {
|
19 | folder = folder || process.cwd()
|
20 | debug('commit-info in folder', folder)
|
21 |
|
22 | return Promise.props({
|
23 | branch: getBranch(folder),
|
24 | message: getMessage(folder),
|
25 | email: getEmail(folder),
|
26 | author: getAuthor(folder),
|
27 | sha: getSha(folder),
|
28 | timestamp: getTimestamp(folder),
|
29 | remote: getRemoteOrigin(folder)
|
30 | }).then(info => {
|
31 | const envVariables = getCommitInfoFromEnvironment()
|
32 | debug('git commit: %o', info)
|
33 | debug('env commit: %o', envVariables)
|
34 | return mergeWith(or, envVariables, info)
|
35 | })
|
36 | }
|
37 |
|
38 | module.exports = {
|
39 | commitInfo,
|
40 | getBranch,
|
41 | getMessage,
|
42 | getEmail,
|
43 | getAuthor,
|
44 | getSha,
|
45 | getRemoteOrigin,
|
46 | getSubject,
|
47 | getTimestamp,
|
48 | getBody
|
49 | }
|