mrlib: add verify_comments
authorFrantisek Hrbata <frantisek@hrbata.com>
Thu, 10 Dec 2020 16:15:35 +0000 (17:15 +0100)
committerFrantisek Hrbata <frantisek@hrbata.com>
Thu, 10 Dec 2020 16:15:35 +0000 (17:15 +0100)
Signed-off-by: Frantisek Hrbata <frantisek@hrbata.com>
mrlib.py

index 4504f1ad6636182c54d7bfd3acca285f397f63d9..80a8d749e4a46e54c5c13744c50f7e54264eb8d7 100755 (executable)
--- a/mrlib.py
+++ b/mrlib.py
@@ -139,6 +139,23 @@ def verify_mrs(mrs, refs):
 
     return list(revs)
 
+def verify_comments(comments, refs):
+    revs = set()
+    for comment in comments:
+        rev = verify_rev(comment)
+        revs.add(rev)
+
+    mboxes = filter_revs(refs, types=["mbox"])
+    stdin = "\n".join(mboxes)
+    rv, out, err = run(["git", "rev-list", "--stdin"], stdin=stdin)
+
+    valid = set(out.strip().split("\n"))
+    diff = revs - valid
+    if diff:
+        sys.exit("Invalid or non-existing comment: {}".format(" ".join(diff)))
+
+    return list(revs)
+
 def verify_commits(mrcommits, commits):
     mrc = set(mrcommits)
     mrc.add(rev_zero)