scripts: compliance: Avoid exception when commit message body is empty

Avoid the following exception in the Identity test when the commit body
is empty:

Traceback (most recent call last):
  File "zephyr/scripts/ci/check_compliance.py", line 2053, in main
    n_fails = _main(args)
              ^^^^^^^^^^^
  File "zephyr/scripts/ci/check_compliance.py", line 1988, in _main
    test.run()
  File "zephyr/scripts/ci/check_compliance.py", line 1459, in run
    auth_name, auth_email, body = git(
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: not enough values to unpack (expected 3, got 2)

This is triggered because ``%b`` represents the body of the commit
message, which can be empty if there's a single line in it, because the
first line is considered the title.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
This commit is contained in:
Carles Cufi 2025-05-13 13:39:30 +02:00 committed by Benjamin Cabé
commit 9f7b786a35

View file

@ -1456,9 +1456,18 @@ class Identity(ComplianceTest):
def run(self):
for shaidx in get_shas(COMMIT_RANGE):
auth_name, auth_email, body = git(
'show', '-s', '--format=%an%n%ae%n%b', shaidx
).split('\n', 2)
commit_info = git('show', '-s', '--format=%an%n%ae%n%b', shaidx).split('\n', 2)
failures = []
if len(commit_info) == 2:
failures.append(f'{shaidx}: Empty commit message body')
auth_name, auth_email = commit_info
body = ''
elif len(commit_info) == 3:
auth_name, auth_email, body = commit_info
else:
self.failure(f'Unable to parse commit message for {shaidx}')
match_signoff = re.search(r"signed-off-by:\s(.*)", body,
re.IGNORECASE)
@ -1466,8 +1475,6 @@ class Identity(ComplianceTest):
body,
re.IGNORECASE)
failures = []
if auth_email.endswith("@users.noreply.github.com"):
failures.append(f"{shaidx}: author email ({auth_email}) must "
"be a real email and cannot end in "