upload: add a --topic option for setting topic explicitly

Let people specify the exact topic when uploading CLs.  The existing
-t option only supports setting the topic to the current local branch.

Add a --topic-branch long option to the existing -t to align it a bit
better with --hashtag & --hashtag-branch.

Change-Id: I010abc4a7f3c685021cae776dd1e597c22b79135
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/431997
Tested-by: Mike Frysinger <vapier@google.com>
Reviewed-by: Gavin Mak <gavinmak@google.com>
Commit-Queue: Mike Frysinger <vapier@google.com>
This commit is contained in:
Mike Frysinger
2024-06-30 20:12:07 -04:00
committed by LUCI
parent 562cea7758
commit 87f52f308c
3 changed files with 24 additions and 13 deletions

View File

@ -257,7 +257,7 @@ class ReviewableBranch:
self,
people,
dryrun=False,
auto_topic=False,
topic=None,
hashtags=(),
labels=(),
private=False,
@ -273,7 +273,7 @@ class ReviewableBranch:
branch=self.name,
people=people,
dryrun=dryrun,
auto_topic=auto_topic,
topic=topic,
hashtags=hashtags,
labels=labels,
private=private,
@ -1104,7 +1104,7 @@ class Project:
branch=None,
people=([], []),
dryrun=False,
auto_topic=False,
topic=None,
hashtags=(),
labels=(),
private=False,
@ -1180,8 +1180,8 @@ class Project:
ref_spec = f"{R_HEADS + branch.name}:refs/for/{dest_branch}"
opts = []
if auto_topic:
opts += ["topic=" + branch.name]
if topic is not None:
opts += [f"topic={topic}"]
opts += ["t=%s" % p for p in hashtags]
# NB: No need to encode labels as they've been validated above.
opts += ["l=%s" % p for p in labels]