]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Make changelog audience mandatory
authorNicki Křížek <nicki@isc.org>
Mon, 14 Oct 2024 17:32:39 +0000 (19:32 +0200)
committerNicki Křížek <nicki@isc.org>
Tue, 29 Oct 2024 15:22:53 +0000 (16:22 +0100)
Use a stricter hazard check which ensures the audience tag is present in
the MR title and is one of the known values. This prevents siuations
where incorrect audience is accidentally used, resulting in a missing
changelog entry or a release note.

dangerfile.py

index 93127eaaf5c27ee3047875f1484eab6585124594..79aa9c04aafbe86882d9c7af9ffa4b0381b43162 100644 (file)
@@ -71,9 +71,11 @@ mr = proj.mergerequests.get(os.environ["CI_MERGE_REQUEST_IID"])
 # - FAIL if the MR title doesn't have the expected format
 #
 # - FAIL if the MR title doesn't contain changelog action
+#
+# - FAIL if the MR title doesn't contain changelog audience
 
 MR_TITLE_RE = re.compile(
-    r"^(\[9\.[0-9]{2}(-S)?\])?\s*(\[[^]]*\]\s*)?((chg|fix|new|rem|sec):)?\s*((dev|usr|pkg|doc|test)\s*:)?\s*([^\n]*)$",
+    r"^(\[9\.[0-9]{2}(-S)?\])?\s*(\[[^]]*\]\s*)?((chg|fix|new|rem|sec):)?\s*((dev|usr|pkg|doc|test|ci|nil)\s*:)?\s*([^\n]*)$",
 )
 mr_title_match = MR_TITLE_RE.match(mr_title)
 mr_title_cve = mr_title_match.group(3) if mr_title_match else None
@@ -85,7 +87,11 @@ if not mr_title_match:
 else:
     if mr_title_action is None:
         fail(
-            "Add one of `chg:`|`fix:`|`new:`|`rem:`|`sec:` to the MR title to categorize this change."
+            "Add one of `chg:`|`fix:`|`new:`|`rem:`|`sec:` to the MR title to [categorize this change](https://gitlab.isc.org/isc-projects/bind9/-/wikis/BIND-development-workflow#mr-title)."
+        )
+    if mr_title_audience is None:
+        fail(
+            "Add one of `dev:`|`usr:`|`pkg:`|`doc:`|`test:`|`ci:`|`nil:` to the MR title as [intended audience](https://gitlab.isc.org/isc-projects/bind9/-/wikis/BIND-development-workflow#mr-title)."
         )
 
 ###############################################################################