Home | History | Annotate | Download | only in tools
      1 #!/usr/bin/python2
      2 
      3 # Copyright 2014 Google Inc.
      4 #
      5 # Use of this source code is governed by a BSD-style license that can be
      6 # found in the LICENSE file.
      7 
      8 """Add message to codereview issue.
      9 
     10 This script takes a codereview issue number as its argument and a (possibly
     11 multi-line) message on stdin.  It appends the message to the given issue.
     12 
     13 Usage:
     14   echo MESSAGE | %prog CODEREVIEW_ISSUE
     15 or:
     16   %prog CODEREVIEW_ISSUE <<EOF
     17   MESSAGE
     18   EOF
     19 or:
     20   %prog --help
     21 """
     22 
     23 import optparse
     24 import sys
     25 
     26 import fix_pythonpath  # pylint: disable=W0611
     27 from common.py.utils import find_depot_tools  # pylint: disable=W0611
     28 import rietveld
     29 
     30 
     31 RIETVELD_URL = 'https://codereview.chromium.org'
     32 
     33 
     34 def add_codereview_message(issue, message):
     35   """Add a message to a given codereview.
     36 
     37   Args:
     38       codereview_url: (string) we will extract the issue number from
     39           this url, or this could simply be the issue number.
     40       message: (string) message to add.
     41   """
     42   # Passing None for the email and password will result in a prompt or
     43   # reuse of existing cached credentials.
     44   my_rietveld = rietveld.Rietveld(RIETVELD_URL, email=None, password=None)
     45   
     46   my_rietveld.add_comment(issue, message)
     47 
     48 
     49 def main(argv):
     50   """main function; see module-level docstring and GetOptionParser help.
     51 
     52   Args:
     53       argv: sys.argv[1:]-type argument list.
     54   """
     55   option_parser = optparse.OptionParser(usage=__doc__)
     56   _, arguments = option_parser.parse_args(argv)
     57 
     58   if len(arguments) > 1:
     59     option_parser.error('Extra arguments.')
     60   if len(arguments) != 1:
     61     option_parser.error('Missing issue number.')
     62 
     63   message = sys.stdin.read()
     64   add_codereview_message(int(arguments[0]), message)
     65 
     66 
     67 if __name__ == '__main__':
     68   main(sys.argv[1:])
     69 
     70