diff options
author | Eric Boren <borenet@google.com> | 2014-06-25 11:13:27 -0400 |
---|---|---|
committer | Eric Boren <borenet@google.com> | 2014-06-25 11:13:27 -0400 |
commit | bb0ef0a1345671f94950bd0a405399954db21d97 (patch) | |
tree | b56bf26a017e4c9246973f878545379158249f12 /tools/add_codereview_message.py | |
parent | 55106da359ba8cdff0e4e1f9561aff3b7fb4bb47 (diff) |
Use new common tools in Python scripts
BUG=skia:2682
R=rmistry@google.com
Review URL: https://codereview.chromium.org/330423004
Diffstat (limited to 'tools/add_codereview_message.py')
-rwxr-xr-x | tools/add_codereview_message.py | 115 |
1 files changed, 18 insertions, 97 deletions
diff --git a/tools/add_codereview_message.py b/tools/add_codereview_message.py index 6710390ac1..a7c53a9a5e 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 @@ or: """ 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 @@ def main(argv): 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)) - - 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.') + _, arguments = option_parser.parse_args(argv) + 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__': |