gitlint: screen multiple change-ids
Tested:
```
$ ./scripts/format-code.sh --enable commit_gitlint
Formatting code under .../openbmc-build-scripts
Running commit_gitlint
-: UC2 Multiple Change-Ids found in commit message body: "['Change-Id: Iec3501f75927d58bfe176423ce3eac824a0553d9', 'Change-Id: Iec3501f75927d58bfe176423ce3eac824a0553d9']"
commit_gitlint: FAILED
```
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: Iec3501f75927d58bfe176423ce3eac824a0553d9
diff --git a/config/gitlint/multiple_change_id.py b/config/gitlint/multiple_change_id.py
new file mode 100644
index 0000000..2f71b6d
--- /dev/null
+++ b/config/gitlint/multiple_change_id.py
@@ -0,0 +1,21 @@
+from gitlint.rules import CommitRule, RuleViolation
+
+
+class DuplicateChangeIdEntries(CommitRule):
+ name = "duplicate-change-id-entries"
+ id = "UC2"
+
+ def validate(self, commit):
+ change_ids = [
+ x for x in commit.message.body if x.startswith("Change-Id:")
+ ]
+ if len(change_ids) > 1:
+ return [
+ RuleViolation(
+ self.id,
+ "Multiple Change-Ids found in commit message body",
+ change_ids,
+ )
+ ]
+
+ return None