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.

    Install

    npm i git-log-to-json

    DownloadsWeekly Downloads

    4

    Version

    1.1.1

    License

    MIT

    Last publish

    Collaborators

    • simonrenoult