An open API service indexing awesome lists of open source software.

https://github.com/brkn/git-blame-line

`git blame` a single line and get output in JSON. Written in TypeScript.
https://github.com/brkn/git-blame-line

blame cli git json typescript

Last synced: about 1 year ago
JSON representation

`git blame` a single line and get output in JSON. Written in TypeScript.

Awesome Lists containing this project

README

          

[![npm version](https://img.shields.io/npm/v/git-blame-line?style=for-the-badge)](https://www.npmjs.com/package/git-blame-line) [![NPM downloads](https://img.shields.io/npm/dw/git-blame-line?style=for-the-badge)](https://www.npmjs.com/package/git-blame-line)

# Git-blame-line

Executes `git blame` asynchronously for a given `:` string, and returns the information in JSON format.

```sh
npm install --global git-blame-line
```

## CLI

You don't need to remember git syntax to get blame info for single line now. Instead of writing this:

```sh
git blame -L 19,+1 --line-porcelain src/index.ts
```

You can execute this from command line:

```sh
blame-line src/index.ts:19
```

And the output would be in the shape as:
```
{
"author": "Berkan Unal",
"authorMail": "Berkanunal@gmail.com",
"authorTime": "2020-11-15T17:35:01.000Z",
"authorTz": "+0300",
"committer": "Berkan Unal",
"committerMail": "Berkanunal@gmail.com",
"committerTime": "2020-11-15T17:35:01.000Z",
"committerTz": "+0300",
"summary": "Remove babel webpack, add eslint, lint project",
"previous": "816634e51cf31c2d7bd18b7a8b082aff539e1bcd src/index.ts",
"filename": "src/index.ts",
"sourceCode": "export async function blameLine(filepathWithLine: string): Promise {"
}
```

## Installing for using inside a node project

```sh
yarn add git-blame-line
```
or
```sh
npm install git-blame-line
```

Then import in the project and use it easily like this 1:

```js
const { blameLine } = require("git-blame-line");

async function example() {
const info = await blameLine("path/to/file:123");
console.log(info);
}

example();
```

1 You don't have to use requirejs syntax

## License

MPL-2.0