]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
danger: check that original MR has been merged
authorTom Krizek <tkrizek@isc.org>
Thu, 15 Dec 2022 16:51:24 +0000 (17:51 +0100)
committerTom Krizek <tkrizek@isc.org>
Fri, 16 Dec 2022 12:37:12 +0000 (13:37 +0100)
When checking a backport MR, ensure that the original MR has been merged
already. This is vital for followup checks that verify commit IDs from
original commits are present in backport commit messages.

dangerfile.py

index 7f0797232c1f0e6029584450ec27072a7021bbbd..de7a6cef0ca81f93fcb7b626dce02afdbff18057 100644 (file)
@@ -175,6 +175,8 @@ if not danger.gitlab.mr.milestone:
 # * The Backport MR doesn't have target branch in the merge request title.
 #
 # * The Backport MR doesn't link to the original MR is its description.
+#
+# * The original MR linked to from Backport MR hasn't been merged.
 
 BACKPORT_OF_RE = re.compile(
     r"Backport\s+of.*(merge_requests/|!)([0-9]+)", flags=re.IGNORECASE
@@ -199,6 +201,14 @@ if is_backport:
             "Backport MRs must link to the original MR. Please put "
             "`Backport of MR !XXXX` in the MR description."
         )
+    else:  # backport MR is linked to original MR
+        original_mr_id = backport_desc.groups()[1]
+        original_mr = proj.mergerequests.get(original_mr_id)
+        if original_mr.state != "merged":
+            fail(
+                f"Original MR !{original_mr_id} has not been merged. "
+                "Please re-run `danger` check once it's merged."
+            )
 if not is_backport and not version_labels:
     fail(
         "If this merge request is a backport, set the *Backport* label and "