gerrit: support new Trybot-Ready flag
Also add sanity check so we don't half-accept commands named:
TrybotReady
BUG=chromium:211660
TEST=`gerrit trybotready 232941 1` sets the trybot-ready flag
TEST=`gerrit trybotready 232941 0` clears the trybot-ready flag
Change-Id: Ie526874312fb5d5288cab553ea87c754c31ed4cb
Reviewed-on: https://chromium-review.googlesource.com/233650
Reviewed-by: David James <davidjames@chromium.org>
Commit-Queue: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
diff --git a/scripts/gerrit.py b/scripts/gerrit.py
index b885a6a..1a35f74 100644
--- a/scripts/gerrit.py
+++ b/scripts/gerrit.py
@@ -271,6 +271,15 @@
UserActReady.arg_min = 2
+def UserActTrybotready(opts, *args):
+ """Mark CL <n> [n ...] with trybot-ready status <0,1>"""
+ num = args[-1]
+ for arg in args[:-1]:
+ helper, cl = GetGerrit(opts, arg)
+ helper.SetReview(cl, labels={'Trybot-Ready': num}, dryrun=opts.dryrun)
+UserActTrybotready.arg_min = 2
+
+
def UserActSubmit(opts, *args):
"""Submit CL <n> [n ...]"""
for arg in args:
@@ -367,8 +376,12 @@
Actions:"""
indent = max([len(x) - len(act_pfx) for x in actions])
for a in sorted(actions):
- usage += '\n %-*s: %s' % (indent, a[len(act_pfx):].lower(),
- globals()[a].__doc__)
+ cmd = a[len(act_pfx):]
+ # Sanity check for devs adding new commands. Should be quick.
+ if cmd != cmd.lower().capitalize():
+ raise RuntimeError('callback "%s" is misnamed; should be "%s"' %
+ (cmd, cmd.lower().capitalize()))
+ usage += '\n %-*s: %s' % (indent, cmd.lower(), globals()[a].__doc__)
parser = commandline.ArgumentParser(usage=usage)
parser.add_argument('-i', '--internal', dest='gob', action='store_const',