gerrit: add command line support for hashtags

Allows gerrit commandline tool to add / remove hashtags for a change.
For example:

  gerrit sethashtags 456123 a b ~c ~d

Above command will add hashtags 'a', 'b' and remove hashtags 'c', 'd'
for change 456123.

BUG=None
TEST=manual

Change-Id: I576f76e917e095b8eedf1c9c551cb0d22506c0d1
Reviewed-on: https://chromium-review.googlesource.com/439780
Commit-Ready: Wei-Han Chen <stimim@chromium.org>
Tested-by: Wei-Han Chen <stimim@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
diff --git a/scripts/gerrit.py b/scripts/gerrit.py
index 6147ae4..e7f4578 100644
--- a/scripts/gerrit.py
+++ b/scripts/gerrit.py
@@ -407,6 +407,20 @@
     helper.SetTopic(arg, topic, dryrun=opts.dryrun)
 
 
+def UserActSethashtags(opts, cl, *args):
+  """Add/remove hashtags for CL <n> (prepend with '~' to remove)"""
+  hashtags = args
+  add = []
+  remove = []
+  for hashtag in hashtags:
+    if hashtag.startswith('~'):
+      remove.append(hashtag[1:])
+    else:
+      add.append(hashtag)
+  helper, cl = GetGerrit(opts, cl)
+  helper.SetHashtags(cl, add, remove, dryrun=opts.dryrun)
+
+
 def UserActDeletedraft(opts, *args):
   """Delete draft CL <n> [n ...]"""
   for arg in args: