@git-temporal/git-log-scraper
Method for parsing git log
output
Installation
npm install @git-temporal/git-log-scraper
API Usage
Data Structures
ICommit
interface ICommit = {
"id": string;
"authorName": string;
"relativeDate": string;
"authorDate": number;
"message": string;
"body": string;
"hash": string;
"linesAdded": number;
"linesDeleted": number;
"files": [
{
"name": string;
"linesAdded": 0;
"linesDeleted": 42;
}
]
}
Functions
getCommitRange
getCommitRange(filePath: string) : {
count: number;
firstCommit: ICommit,
lastCommit: ICommit
}[]
Example:
import { getCommitRange } from '@git-temporal/gitLogScraper';
const commitRange = getCommitHistory(path);
console.warn(`There were ${commitRange.count} commits
from ${commitRange.firstCommit.authorDate`)
to ${commitRange.lastCommit.authorDate`)
`);
console.log(JSON.stringify(commitRange, null, 2));
getCommitHistory
getCommitHistory(filePath: string, skip?: number, count?: number) : ICommit[]
Example:
import { getCommitHistory } from '@git-temporal/gitLogScraper';
const commitHistory = getCommitHistory(path);
console.warn(`parsed ${commitHistory.length} commits`);
console.log(JSON.stringify(commitHistory, null, 2));
Returns an array of javascript objects representing the commits that effected the requested file or directory with files and line stats, that looks like this:
[{
"id": "eeb817785c771362416fd87ea7d2a1a32dde9842",
"authorName": "Dan",
"relativeDate": "5 days ago",
"authorDate": 1537317391,
"message": "Remove some old files from stats",
"body": "",
"hash": "eeb817785",
"linesAdded": 0,
"linesDeleted": 42,
"files": [
{
"name": "scripts/rollup/results.json",
"linesAdded": 0,
"linesDeleted": 42
}
]
}, {
...
}]
bin
git-log-scraper also provides a binary you can use
npx @git-temporal/git-log-scraper . > myGitLogHistory.json
...will printout nicely formatted json for the git log information in a directory.