Fix PostUploadHook for Gerrit issues
authorrmistry <rmistry@google.com>
Thu, 1 Sep 2016 20:36:31 +0000 (13:36 -0700)
committerCommit bot <commit-bot@chromium.org>
Thu, 1 Sep 2016 20:36:31 +0000 (13:36 -0700)
A gerrit change must contain the "Change-Id" at the end. This CL strips
out the changeId from the description and adds it back in at the end.

BUG=skia:5676
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2299303002
NOTRY=true

Review-Url: https://codereview.chromium.org/2299303002

PRESUBMIT.py

index 38b4b5a..c281b9a 100644 (file)
@@ -458,6 +458,14 @@ def PostUploadHook(cl, change, output_api):
   issue = cl.issue
   if issue:
     original_description = cl.GetDescription()
+    changeIdLine = None
+    if cl.IsGerrit():
+      # Remove Change-Id from description and add it back at the end.
+      regex = re.compile(r'^(Change-Id: (\w+))(\n*)\Z', re.M | re.I)
+      changeIdLine = re.search(regex, original_description).group(0)
+      original_description = re.sub(regex, '', original_description)
+      original_description = re.sub('\n+\Z', '\n', original_description)
+
     new_description = original_description
 
     # Add GOLD_TRYBOT_URL if it does not exist yet.
@@ -535,6 +543,9 @@ def PostUploadHook(cl, change, output_api):
 
     # If the description has changed update it.
     if new_description != original_description:
+      if changeIdLine:
+        # The Change-Id line must have two newlines before it.
+        new_description += '\n\n' + changeIdLine
       cl.UpdateDescription(new_description)
 
     return results