git-patch-additions
Version:
Parse additions from git patches
128 lines (99 loc) • 3.34 kB
Markdown
git-patch-additions
-------------------
[](http://badge.fury.io/js/git-patch-additions)
[](https://david-dm.org/jviotti/git-patch-additions.png)
[](https://travis-ci.org/jviotti/git-patch-additions)
[](https://ci.appveyor.com/project/jviotti/git-patch-additions/branch/master)
Parse additions from git patches.
Description
-----------
The purpose of this module is to extract additions along with metadata from GitHub pull request patches, in order to programatically comment on them.
Example:
```
From e53787fc794ff85986479d85deddfabef0b3489e Mon Sep 17 00:00:00 2001
From: Juan Cruz Viotti <jviottidc@gmail.com>
Date: Tue, 10 Nov 2015 20:02:26 -0400
Subject: [PATCH] Update foo
---
README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/bar.txt b/bar.txt
index 3be11c6..dc8344c 100644
--- a/bar.txt
+++ b/bar.txt
@@ -1 +1 @@
-Lorem ipsum
+Lorem ipsum dolor sit amet
diff --git a/foo.txt b/foo.txt
index 557db03..503b609 100644
--- a/foo.txt
+++ b/foo.txt
@@ -1 +1 @@
-Hello World
+Hola World
```
***
```js
{
line: 2,
content: 'Lorem ipsum dolor sit amet',
commit: 'e53787fc794ff85986479d85deddfabef0b3489e',
file: 'bar.txt'
},
{
line: 2,
content: 'Hola World',
commit: 'e53787fc794ff85986479d85deddfabef0b3489e',
file: 'foo.txt'
}
```
Installation
------------
Install `git-patch-additions` by running:
```sh
$ npm install --save git-patch-additions
```
Documentation
-------------
<a name="module_gitPatchAdditions.get"></a>
### gitPatchAdditions.get(patch) ⇒ <code>Array.<Object></code>
**Kind**: static method of <code>[gitPatchAdditions](#module_gitPatchAdditions)</code>
**Summary**: Get patch additions
**Returns**: <code>Array.<Object></code> - additions
**Access:** public
| Param | Type | Description |
| --- | --- | --- |
| patch | <code>String</code> | git patch |
**Example**
```js
var patch = fs.readFileSync('path/to/mypatch.patch', {
encoding: 'utf8'
});
var additions = gitPatchAdditions.get(patch);
additions.forEach(function(addition) {
console.log('The addition text is:', addition.content);
console.log('The addition commit is:', addition.commit);
console.log('The addition was made in the following file:', addition.file);
console.log('The addition was made in the following line:', addition.line);
});
```
Support
-------
If you're having any problem, please [raise an issue](https://github.com/jviotti/git-patch-additions/issues/new) on GitHub and I'll be happy to help.
Tests
-----
Run the test suite by doing:
```sh
$ gulp test
```
Contribute
----------
- Issue Tracker: [github.com/jviotti/git-patch-additions/issues](https://github.com/jviotti/git-patch-additions/issues)
- Source Code: [github.com/jviotti/git-patch-additions](https://github.com/jviotti/git-patch-additions)
Before submitting a PR, please make sure that you include tests, and that [jshint](http://jshint.com) runs without any warning:
```sh
$ gulp lint
```
License
-------
The project is licensed under the MIT license.