Index: tools/add_codereview_message.py |
diff --git a/tools/add_codereview_message.py b/tools/add_codereview_message.py |
index 6710390ac1bba25078d4bd25e5d2bed522e20028..a7c53a9a5e3ab11cd5c8fc3a8deb256506ab0bd3 100755 |
--- a/tools/add_codereview_message.py |
+++ b/tools/add_codereview_message.py |
@@ -7,14 +7,12 @@ |
"""Add message to codereview issue. |
-This script takes a codereview URL or a codereview issue number as its |
-argument and a (possibly multi-line) message on stdin. It then calls |
-`git cl upload` to append the message to the given codereview issue. |
+This script takes a codereview issue number as its argument and a (possibly |
+multi-line) message on stdin. It appends the message to the given issue. |
Usage: |
- echo MESSAGE | %prog -c CHECKOUT_PATH CODEREVIEW_ISSUE |
+ echo MESSAGE | %prog CODEREVIEW_ISSUE |
or: |
- cd /path/to/git/checkout |
%prog CODEREVIEW_ISSUE <<EOF |
MESSAGE |
EOF |
@@ -23,77 +21,29 @@ or: |
""" |
import optparse |
-import os |
import sys |
-import git_utils |
-import misc_utils |
+import fix_pythonpath # pylint: disable=W0611 |
+from common.py.utils import find_depot_tools # pylint: disable=W0611 |
+import rietveld |
-DEFAULT_REVIEWERS = ','.join([ |
- 'rmistry@google.com', |
- 'reed@google.com', |
- 'bsalomon@google.com', |
- 'robertphillips@google.com', |
- ]) |
+RIETVELD_URL = 'https://codereview.chromium.org' |
-DEFAULT_CC_LIST = ','.join([ |
- 'skia-team@google.com', |
- ]) |
- |
- |
-def add_codereview_message(codereview_url, message, checkout_path, |
- skip_cl_upload, verbose, reviewers, cclist): |
+def add_codereview_message(issue, message): |
"""Add a message to a given codereview. |
Args: |
codereview_url: (string) we will extract the issue number from |
this url, or this could simply be the issue number. |
- message: (string) will be passed to `git cl upload -m $MESSAGE` |
- checkout_path: (string) location of the git |
- repository checkout to be used. |
- skip_cl_upload: (boolean) if true, don't actually |
- add the message and keep the temporary branch around. |
- verbose: (boolean) print out details useful for debugging. |
- reviewers: (string) comma-separated list of reviewers |
- cclist: (string) comma-separated list of addresses to be |
- carbon-copied |
+ message: (string) message to add. |
""" |
- # pylint: disable=I0011,R0913 |
- git = git_utils.git_executable() |
- issue = codereview_url.strip('/').split('/')[-1] |
- vsp = misc_utils.VerboseSubprocess(verbose) |
- if skip_cl_upload: |
- branch_name = 'issue_%s' % issue |
- else: |
- branch_name = None |
- upstream = 'origin/master' |
- |
- with misc_utils.ChangeDir(checkout_path, verbose): |
- vsp.check_call([git, 'fetch', '-q', 'origin']) |
- |
- with git_utils.ChangeGitBranch(branch_name, upstream, verbose): |
- vsp.check_call([git, 'cl', 'patch', issue]) |
- |
- git_upload = [ |
- git, 'cl', 'upload', '-t', 'bot report', '-m', message] |
- if cclist: |
- git_upload.append('--cc=' + cclist) |
- if reviewers: |
- git_upload.append('--reviewers=' + reviewers) |
- |
- if skip_cl_upload: |
- branch_name = git_utils.git_branch_name(verbose) |
- space = ' ' |
- print 'You should call:' |
- misc_utils.print_subprocess_args(space, ['cd', os.getcwd()]) |
- misc_utils.print_subprocess_args( |
- space, [git, 'checkout', branch_name]) |
- misc_utils.print_subprocess_args(space, git_upload) |
- else: |
- vsp.check_call(git_upload) |
- print vsp.check_output([git, 'cl', 'issue']) |
+ # Passing None for the email and password will result in a prompt or |
+ # reuse of existing cached credentials. |
+ my_rietveld = rietveld.Rietveld(RIETVELD_URL, email=None, password=None) |
+ |
+ my_rietveld.add_comment(issue, message) |
def main(argv): |
@@ -103,44 +53,15 @@ def main(argv): |
argv: sys.argv[1:]-type argument list. |
""" |
option_parser = optparse.OptionParser(usage=__doc__) |
- option_parser.add_option( |
- '-c', '--checkout_path', |
- default=os.curdir, |
- help='Path to the Git repository checkout,' |
- ' defaults to current working directory.') |
- option_parser.add_option( |
- '', '--skip_cl_upload', action='store_true', default=False, |
- help='Skip the cl upload step; useful for testing.') |
- option_parser.add_option( |
- '', '--verbose', action='store_true', dest='verbose', default=False, |
- help='Do not suppress the output from `git cl`.',) |
- option_parser.add_option( |
- '', '--git_path', default='git', |
- help='Git executable, defaults to "git".',) |
- option_parser.add_option( |
- '', '--reviewers', default=DEFAULT_REVIEWERS, |
- help=('Comma-separated list of reviewers. Default is "%s".' |
- % DEFAULT_REVIEWERS)) |
- option_parser.add_option( |
- '', '--cc', default=DEFAULT_CC_LIST, |
- help=('Comma-separated list of addresses to be carbon-copied.' |
- ' Default is "%s".' % DEFAULT_CC_LIST)) |
- |
- options, arguments = option_parser.parse_args(argv) |
- |
- if not options.checkout_path: |
- option_parser.error('Must specify checkout_path.') |
- if not git_utils.git_executable(): |
- option_parser.error('Invalid git executable.') |
+ _, arguments = option_parser.parse_args(argv) |
+ |
if len(arguments) > 1: |
option_parser.error('Extra arguments.') |
if len(arguments) != 1: |
- option_parser.error('Missing Codereview URL.') |
+ option_parser.error('Missing issue number.') |
message = sys.stdin.read() |
- add_codereview_message(arguments[0], message, options.checkout_path, |
- options.skip_cl_upload, options.verbose, |
- options.reviewers, options.cc) |
+ add_codereview_message(int(arguments[0]), message) |
if __name__ == '__main__': |