pre-upload: allow some more tags in cherry picked patches
It turns out a couple of common tags were missed when the list of the
tags allowed in the last paragraph of the commit message was defined.
'Commit-Queue:' added by gerrit when the original patch is checked in
in some cases, and '(cherry picked from commit...' which can be
showing up more than once in case a patch was cherry picked more than
once.
Let's add these to the list of allowed tags to avoid false positives
when cherry picking into branches.
BUG=none
TEST=verified that proper error message is generated for different
inputs, and that valid tags do not trigger pre-submit errors any
more.
Change-Id: I4ba4259982abe61fa66cbc064ddee1418fd0b051
Signed-off-by: Vadim Bendebury <vbendeb@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/666490
Reviewed-by: Guenter Roeck <groeck@chromium.org>
diff --git a/pre-upload.py b/pre-upload.py
index c061f4f..2ef303f 100755
--- a/pre-upload.py
+++ b/pre-upload.py
@@ -971,12 +971,16 @@
allowed_tags = ['Signed-off-by']
end = desc[m.end():].strip().splitlines()
- if end and end[-1].startswith('(cherry picked from commit'):
+ cherry_pick_marker = 'cherry picked from commit'
+
+ if end and cherry_pick_marker in end[-1]:
# Cherry picked patches allow more tags in the last paragraph.
- allowed_tags += ['Reviewed-on', 'Reviewed-by', 'Commit-Ready', 'Tested-by']
+ allowed_tags += ['Commit-Queue', 'Commit-Ready', 'Reviewed-by',
+ 'Reviewed-on', 'Tested-by']
end = end[:-1]
- tag_search = '^(%s): ' % '|'.join(allowed_tags)
+ # Note that descriptions could have multiple cherry pick markers.
+ tag_search = r'^(%s:|\(%s) ' % (':|'.join(allowed_tags), cherry_pick_marker)
if [x for x in end if not re.search(tag_search, x)]:
return HookFailure('Only "%s:" tag(s) may follow the Change-Id.' %