util/git-hooks: Check for Signed-off-by line
Enforce the DCO. The logic comes from coreboot's commit-msg hook,
and I've added a pointer to flashrom's development guidelines.
Change-Id: Iea49a06c2d4824be073eff98c8aae1cbc5b145e4
Signed-off-by: David Hendricks <david.hendricks@gmail.com>
Reviewed-on: https://review.coreboot.org/c/flashrom/+/35295
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nico Huber <nico.h@gmx.de>
diff --git a/util/git-hooks/commit-msg b/util/git-hooks/commit-msg
index 346c08f..d43eb45 100755
--- a/util/git-hooks/commit-msg
+++ b/util/git-hooks/commit-msg
@@ -28,6 +28,8 @@
CHANGE_ID_AFTER="Bug|Depends-On|Issue|Test|Feature|Fixes|Fixed|Staging-ID"
MSG="$1"
+DEV_GUIDELINES_URL="https://www.flashrom.org/Development_Guidelines"
+
# Check for, and add if missing, a unique Change-Id
#
add_ChangeId() {
@@ -192,6 +194,14 @@
git hash-object -t commit --stdin
}
+test_signoff() {
+ if ! grep -qi '^[[:space:]]*\+Signed-off-by:' "$MSG"; then
+ printf "\nError: No Signed-off-by line in the commit message.\n"
+ printf "See: ${DEV_GUIDELINES_URL}\n"
+ exit 1
+ fi
+}
+
# Test for duplicate signoffs/acks
test_duplicate_signoffs_acks() {
test "" = "$(grep -i '^(Signed-off-by|Acked-by): ' "$MSG" |
@@ -202,6 +212,7 @@
}
main() {
+ test_signoff
test_duplicate_signoffs_acks
add_ChangeId
}