gerrit: add a --dry-run option
This makes it a lot easier to test changes w/out actually affecting
the live server.
BUG=chromium:384547
TEST=`gerrit --dry-run abandon $(gerrit --raw mine)` lists CLs it would have abandoned
Change-Id: If4ac5c75e7c67387d4a5728717b1208ed81373e0
Reviewed-on: https://chromium-review.googlesource.com/203921
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
diff --git a/scripts/gerrit.py b/scripts/gerrit.py
index 7be765a..8e1b824 100644
--- a/scripts/gerrit.py
+++ b/scripts/gerrit.py
@@ -231,7 +231,7 @@
"""Mark CL <n> [n ...] with code review status <-2,-1,0,1,2>"""
num = args[-1]
for idx in args[:-1]:
- opts.gerrit.SetReview(idx, labels={'Code-Review': num})
+ opts.gerrit.SetReview(idx, labels={'Code-Review': num}, dryrun=opts.dryrun)
UserActReview.arg_min = 2
@@ -239,7 +239,7 @@
"""Mark CL <n> [n ...] with verify status <-1,0,1>"""
num = args[-1]
for idx in args[:-1]:
- opts.gerrit.SetReview(idx, labels={'Verified': num})
+ opts.gerrit.SetReview(idx, labels={'Verified': num}, dryrun=opts.dryrun)
UserActVerify.arg_min = 2
@@ -247,26 +247,26 @@
"""Mark CL <n> [n ...] with ready status <0,1,2>"""
num = args[-1]
for idx in args[:-1]:
- opts.gerrit.SetReview(idx, labels={'Commit-Queue': num})
+ opts.gerrit.SetReview(idx, labels={'Commit-Queue': num}, dryrun=opts.dryrun)
UserActReady.arg_min = 2
def UserActSubmit(opts, *args):
"""Submit CL <n> [n ...]"""
for idx in args:
- opts.gerrit.SubmitChange(idx)
+ opts.gerrit.SubmitChange(idx, dryrun=opts.dryrun)
def UserActAbandon(opts, *args):
"""Abandon CL <n> [n ...]"""
for idx in args:
- opts.gerrit.AbandonChange(idx)
+ opts.gerrit.AbandonChange(idx, dryrun=opts.dryrun)
def UserActRestore(opts, *args):
"""Restore CL <n> [n ...] that was abandoned"""
for idx in args:
- opts.gerrit.RestoreChange(idx)
+ opts.gerrit.RestoreChange(idx, dryrun=opts.dryrun)
def UserActReviewers(opts, idx, *args):
@@ -289,18 +289,19 @@
'Invalid email address(es): %s' % ', '.join(invalid_list))
if add_list or remove_list:
- opts.gerrit.SetReviewers(idx, add=add_list, remove=remove_list)
+ opts.gerrit.SetReviewers(idx, add=add_list, remove=remove_list,
+ dryrun=opts.dryrun)
def UserActMessage(opts, idx, message):
"""Add a message to CL <n>"""
- opts.gerrit.SetReview(idx, msg=message)
+ opts.gerrit.SetReview(idx, msg=message, dryrun=opts.dryrun)
def UserActDeletedraft(opts, *args):
"""Delete draft patch set <n> [n ...]"""
for idx in args:
- opts.gerrit.DeleteDraft(idx)
+ opts.gerrit.DeleteDraft(idx, dryrun=opts.dryrun)
def main(argv):
@@ -345,6 +346,9 @@
help='Key to sort on (number, project)')
parser.add_argument('--raw', default=False, action='store_true',
help='Return raw results (suitable for scripting)')
+ parser.add_argument('-n', '--dry-run', default=False, action='store_true',
+ dest='dryrun',
+ help='Show what would be done, but do not make changes')
parser.add_argument('-v', '--verbose', default=False, action='store_true',
help='Be more verbose in output')
parser.add_argument('args', nargs='+')