Use new common tools in Python scripts

BUG=skia:2682
R=rmistry@google.com

Review URL: https://codereview.chromium.org/330423004
diff --git a/tools/add_codereview_message.py b/tools/add_codereview_message.py
index 6710390..a7c53a9 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 @@
 """
 
 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 @@
         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))
+    _, arguments = option_parser.parse_args(argv)
 
-    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.')
     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__':