jc.parsers.git_diff
jc - JSON Convert git diff --name-status command output parser
Only the --name-status output format is currently supported.
Usage (cli):
$ git diff --name-status | jc --git-diff
or
$ jc git diff --name-status
Usage (module):
import jc
result = jc.parse('git_diff', git_diff_command_output)
Schema:
[
{
"status": string, # A, M, D, R, C, T, U, or X
"status_description": string,
"similarity": integer/null, # [0]
"old_path": string/null, # [0]
"path": string
}
]
[0] only available for renamed (`R`) and copied (`C`) entries
Examples:
$ git diff --name-status | jc --git-diff -p
[
{
"status": "M",
"status_description": "Modified",
"similarity": null,
"old_path": null,
"path": "bootstrap/bootstrap.sh"
},
{
"status": "D",
"status_description": "Deleted",
"similarity": null,
"old_path": null,
"path": "configs/sample.json"
},
{
"status": "A",
"status_description": "Added",
"similarity": null,
"old_path": null,
"path": "scripts/status.py"
},
{
"status": "R",
"status_description": "Renamed",
"similarity": 100,
"old_path": "README.md",
"path": "README_now.md"
}
]
$ git diff --name-status | jc --git-diff -p -r
[
{
"status": "R100",
"similarity": null,
"old_path": "README.md",
"path": "README_now.md"
}
]
parse
def parse(data, raw=False, quiet=False)
Main text parsing function
Parameters:
data: (string) text data to parse
raw: (boolean) unprocessed output if True
quiet: (boolean) suppress warning messages if True
Returns:
List of Dictionaries. Raw or processed structured data.
Parser Information
Compatibility: linux, darwin, cygwin, win32, aix, freebsd
Source: jc/parsers/git_diff.py
Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com)