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 10This script takes a codereview issue number as its argument and a (possibly 11multi-line) message on stdin. It appends the message to the given issue. 12 13Usage: 14 echo MESSAGE | %prog CODEREVIEW_ISSUE 15or: 16 %prog CODEREVIEW_ISSUE <<EOF 17 MESSAGE 18 EOF 19or: 20 %prog --help 21""" 22 23import optparse 24import sys 25 26import fix_pythonpath # pylint: disable=W0611 27from common.py.utils import find_depot_tools # pylint: disable=W0611 28import rietveld 29 30 31RIETVELD_URL = 'https://codereview.chromium.org' 32 33 34def 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 49def 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 67if __name__ == '__main__': 68 main(sys.argv[1:]) 69 70