From a8537ad0964f2490c658f484fcec6c9d2f257d7b Mon Sep 17 00:00:00 2001 From: Idan Horowitz Date: Tue, 11 Jan 2022 23:31:08 +0200 Subject: [PATCH] CI: Require a blank line between commit titles and bodies --- .github/workflows/lintcommits.yml | 4 ++++ Meta/lint-commit.sh | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/.github/workflows/lintcommits.yml b/.github/workflows/lintcommits.yml index b8c4fbd445..7d6dfb2e07 100644 --- a/.github/workflows/lintcommits.yml +++ b/.github/workflows/lintcommits.yml @@ -20,6 +20,10 @@ jobs: pattern: /^[^\r]*$/, error: "Commit message contains CRLF line breaks (only unix-style LF linebreaks are allowed)", }, + { + pattern: /^.+(\r?\n(\r?\n.*)*)?$/, + error: "Empty line between commit title and body is missing", + }, { pattern: /^.{0,72}(?:\r?\n(?:(.{0,72})|(.*?([a-z]+:\/\/)?(([a-zA-Z0-9_]|-)+\.)+[a-z]{2,}(:\d+)?([a-zA-Z_0-9@:%\+.~\?&/=]|-)+).*?))*$/, error: "Commit message lines are too long (maximum allowed is 72 characters, except for URLs)", diff --git a/Meta/lint-commit.sh b/Meta/lint-commit.sh index 293220da7a..d6e0887403 100755 --- a/Meta/lint-commit.sh +++ b/Meta/lint-commit.sh @@ -30,6 +30,10 @@ while read -r line; do ((line_number += 1)) line_length=${#line} + if [[ $line_number -eq 2 ]] && [[ $line_length -ne 0 ]]; then + error "Empty line between commit title and body is missing" + fi + category_pattern="^\S.*?\S: .+" if [[ $line_number -eq 1 ]] && (echo "$line" | grep -E -v -q "$category_pattern"); then error "Missing category in commit title (if this is a fix up of a previous commit, it should be squashed)"