Add -j flag to git cl comments to get JSON summary of CL comments
BUG=529169
Review URL: https://codereview.chromium.org/1342003002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@296691 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/git_cl.py b/git_cl.py
index 9fcc3b7..de80a9f 100755
--- a/git_cl.py
+++ b/git_cl.py
@@ -1786,6 +1786,8 @@
help='comment to add to an issue')
parser.add_option('-i', dest='issue',
help="review issue id (defaults to current issue)")
+ parser.add_option('-j', '--json-file',
+ help='File to write JSON summary to')
auth.add_auth_options(parser)
options, args = parser.parse_args(args)
auth_config = auth.extract_auth_config_from_options(options)
@@ -1804,11 +1806,21 @@
return 0
data = cl.GetIssueProperties()
+ summary = []
for message in sorted(data.get('messages', []), key=lambda x: x['date']):
+ summary.append({
+ 'date': message['date'],
+ 'lgtm': False,
+ 'message': message['text'],
+ 'not_lgtm': False,
+ 'sender': message['sender'],
+ })
if message['disapproval']:
color = Fore.RED
+ summary[-1]['not lgtm'] = True
elif message['approval']:
color = Fore.GREEN
+ summary[-1]['lgtm'] = True
elif message['sender'] == data['owner_email']:
color = Fore.MAGENTA
else:
@@ -1818,6 +1830,9 @@
Fore.RESET)
if message['text'].strip():
print '\n'.join(' ' + l for l in message['text'].splitlines())
+ if options.json_file:
+ with open(options.json_file, 'wb') as f:
+ json.dump(summary, f)
return 0