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 auth_config will result in a prompt or 43 # reuse of existing cached credentials. 44 my_rietveld = rietveld.Rietveld(RIETVELD_URL, email=None, auth_config=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