summaryrefslogtreecommitdiffstats
path: root/project.py
diff options
context:
space:
mode:
authorMike Frysinger <vapier@google.com>2022-05-20 12:52:33 -0400
committerMike Frysinger <vapier@google.com>2022-05-21 19:19:44 +0000
commit3a0a145b0ec52dff88b021c5937925f25294a10f (patch)
treecd7e2f5fdf821485d19bfdb6507c2fb098b0b5f1 /project.py
parent74737da1ab9b5a25c38616d563a973af267277f7 (diff)
downloadgit-repo-3a0a145b0ec52dff88b021c5937925f25294a10f.tar.gz
upload: move label validation to core function
This way we know we don't need to encode the labels. Change-Id: Ib83ed8f4ed05f00b9d2d06a9dd3f304e4443430e Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/337518 Tested-by: Mike Frysinger <vapier@google.com> Reviewed-by: LaMont Jones <lamontjones@google.com>
Diffstat (limited to 'project.py')
-rw-r--r--project.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/project.py b/project.py
index 9f790308..b7ed6f33 100644
--- a/project.py
+++ b/project.py
@@ -996,6 +996,13 @@ class Project(object):
996 if not branch.remote.review: 996 if not branch.remote.review:
997 raise GitError('remote %s has no review url' % branch.remote.name) 997 raise GitError('remote %s has no review url' % branch.remote.name)
998 998
999 # Basic validity check on label syntax.
1000 for label in labels:
1001 if not re.match(r'^.+[+-][0-9]+$', label):
1002 raise UploadError(
1003 f'invalid label syntax "{label}": labels use forms like '
1004 'CodeReview+1 or Verified-1')
1005
999 if dest_branch is None: 1006 if dest_branch is None:
1000 dest_branch = self.dest_branch 1007 dest_branch = self.dest_branch
1001 if dest_branch is None: 1008 if dest_branch is None:
@@ -1031,6 +1038,7 @@ class Project(object):
1031 if auto_topic: 1038 if auto_topic:
1032 opts += ['topic=' + branch.name] 1039 opts += ['topic=' + branch.name]
1033 opts += ['t=%s' % p for p in hashtags] 1040 opts += ['t=%s' % p for p in hashtags]
1041 # NB: No need to encode labels as they've been validated above.
1034 opts += ['l=%s' % p for p in labels] 1042 opts += ['l=%s' % p for p in labels]
1035 1043
1036 opts += ['r=%s' % p for p in people[0]] 1044 opts += ['r=%s' % p for p in people[0]]