git-log-to-json

1.1.1 • Public • Published

git-log-to-json

Style Status Build Status Coverage Status NPM Version

Print a configurable git log in json

Install

$ npm install git-log-to-json

CLI

Usage: git-log-to-json|git log-to-json <dir>

Print a configurable git log in json

Options:

  -h, --help          output usage information
  -V, --version       output the version number
  -H, --hash          output the commit hash
  -D, --date          output the commit date
  -N, --author-name   output the commit author name
  -E, --author-email  output the commit author email
  -S, --subject       output the commit subject
  -B, --body          output the commit body
  -L, --limit         limit the number of commit logged
  -P, --pretty        format the output with "\t"

Examples:

  $ git log-to-json .
  $ git log-to-json . --limit 3
  $ git log-to-json . --hash --date --author-name
  $ git log-to-json . -H -D --subject
  $ git log-to-json . -H -D -S -B --pretty
  $ ./bin/git-log-to-json . > history.json

API

require('git-log-to-json')(directory[, options])

  • directory <String> The directory to analyze. Must contain a .git directory
  • options <Object> An optional map of flags to configure the git log command:
    • hash <Boolean> Includes the commit hash
    • date <Boolean> Includes the commit date
    • subject <Boolean> Includes the commit subject
    • body <Boolean> Includes the commit body
    • authorEmail <Boolean> Includes the commit author email
    • authorName <Boolean> Includes the commit author name
    • limit <Integer> Limit the number of commit logged
    • pretty <Boolean> Format the output with \t
  • Return: <Promise> The promise resolved once the git log command is executed.

Examples

Given the commit:

feat(#420): node.js rocks

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
require('git-log-to-json')('.')
  .then((log) => {
    /* log will contain:
    [{
      "hash": "<hash>",
      "date": "2016-04-21T19:00:13+02:00",
      "subject": "feat(#420): node.js rocks",
      "body": "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
      incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
      nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. ",
      "author": {
        "name": "Simon Renoult",
        "email": "simon.renoult@gmail.com"
      }
    }]
     */
  })
  .catch((err) => {
    // do something
  })
 
require('git-log-to-json')('.', {hash: true, date: true, authorEmail: true})
  .then((log) => {
    /* log will contain:
    [{
      "hash": "<hash>",
      "date": "2016-04-21T19:00:13+02:00",
      "author": {
        "email": "simon.renoult@gmail.com"
      }
    }]
     */
  })
  .catch((err) => {
    // do something
  })

Troubleshooting

The tests fail to run locally.

The test/mock/repo submodule might be missing. Clone git-log-to-json with the --recursive flag.

I installed git-log-to-json globally but the command is not found.

The command is still available, not to autocompletion though. This is due to git doing some fancy work. The autocompletion will work with git log-to-json.

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.1.1
    43
    • latest

Version History

Package Sidebar

Install

npm i git-log-to-json

Weekly Downloads

45

Version

1.1.1

License

MIT

Last publish

Collaborators

  • simonrenoult