| #!/usr/bin/python2 | |
| # Copyright 2014 Google Inc. | |
| # | |
| # Use of this source code is governed by a BSD-style license that can be | |
| # found in the LICENSE file. | |
| """Add message to 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 CODEREVIEW_ISSUE | |
| or: | |
| %prog CODEREVIEW_ISSUE <<EOF | |
| MESSAGE | |
| EOF | |
| or: | |
| %prog --help | |
| """ | |
| import optparse | |
| import sys | |
| import fix_pythonpath # pylint: disable=W0611 | |
| from common.py.utils import find_depot_tools # pylint: disable=W0611 | |
| import rietveld | |
| RIETVELD_URL = 'https://codereview.chromium.org' | |
| 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) message to add. | |
| """ | |
| # Passing None for the email and auth_config will result in a prompt or | |
| # reuse of existing cached credentials. | |
| my_rietveld = rietveld.Rietveld(RIETVELD_URL, email=None, auth_config=None) | |
| my_rietveld.add_comment(issue, message) | |
| def main(argv): | |
| """main function; see module-level docstring and GetOptionParser help. | |
| Args: | |
| argv: sys.argv[1:]-type argument list. | |
| """ | |
| option_parser = optparse.OptionParser(usage=__doc__) | |
| _, arguments = option_parser.parse_args(argv) | |
| if len(arguments) > 1: | |
| option_parser.error('Extra arguments.') | |
| if len(arguments) != 1: | |
| option_parser.error('Missing issue number.') | |
| message = sys.stdin.read() | |
| add_codereview_message(int(arguments[0]), message) | |
| if __name__ == '__main__': | |
| main(sys.argv[1:]) | |