Skip to content

Parses git logs created with attached numstat option

Notifications You must be signed in to change notification settings

codevey/parse-git-numstat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

2a73696 · Feb 6, 2020

History

25 Commits
Sep 15, 2019
Oct 3, 2019
Oct 3, 2019
Aug 17, 2019
Sep 15, 2019
Sep 15, 2019
Sep 15, 2019
Feb 6, 2020
Oct 4, 2019
Oct 3, 2019
Feb 6, 2020
Feb 6, 2020

Repository files navigation

Parse Git Numstat

Parses git logs created with attached numstat option like git log --numstat > gitlog.txt

CircleCI

Usage

npm i parse-git-numstat
    const fs = require('fs');
    const parse = require('parse-git-numstat');

    const gitlog = fs.readFileSync('location/to/gitlog.txt', { encoding: 'utf-8' });
    const commits = parse(gitlog);

    console.log(commits[0]);

Prints

{ sha: '...',
    branches: [...],    // field available when using --decorate
    tags: [...],        // field available when using --decorate
    author: { name: '...', email: '...' },
    merge: null,
    date: '2019-06-01T15:49:20.000Z',
    message: 'chore: initial commit',
    stat: [
        { added: 16, deleted: 0, filepath: '.editorconfig' },
        { added: 7, deleted: 0, filepath: '.gitignore' },
        { added: 23, deleted: 0, filepath: 'README.md' },
        { added: 16, deleted: 0, filepath: 'index.js' },
        { added: 30, deleted: 0, filepath: 'lib/i2c-connection-async.js' },
        { added: 134, deleted: 0, filepath: 'lib/sensor.js' },
        { added: 21, deleted: 0, filepath: 'lib/util.js' },
        { added: 4187, deleted: 0, filepath: 'package-lock.json' },
        { added: 34, deleted: 0, filepath: 'package.json' },
        { added: 9, deleted: 0, filepath: 'test.js' }
    ]
}

Parsing Branches and Tags

If tags and branches should be parsed the git log has to be generate using the --decorate switch

git log --numstat --decorate > gitlog.txt

or

git log --numstat --decorate=full > gitlog.txt