From 73156cc81b7a27e0ee5108378eeba69a68d4e25e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20K=C4=99pie=C5=84?= Date: Thu, 21 May 2026 11:13:30 +0200 Subject: [PATCH] Conflate missing commit reference notifications Instead of creating a separate (potentially lengthy) Danger notification for every missing commit reference in a backport, produce a single notification with a list of all unreferenced commit hashes. This makes Danger output more concise while retaining all the relevant feedback for the developer. (cherry picked from commit 086780dcf08ce1279dee6d30c380e6c0446b17af) --- dangerfile.py | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/dangerfile.py b/dangerfile.py index c716934f09..c4db6a3856 100644 --- a/dangerfile.py +++ b/dangerfile.py @@ -282,25 +282,28 @@ if is_backport: else: # check for commit IDs once original MR is merged original_mr_commits = list(original_mr.commits(all=True)) backport_mr_commits = list(mr.commits(all=True)) - for orig_commit in original_mr_commits: - for backport_commit in backport_mr_commits: - if orig_commit.id in backport_commit.message: - break + missing_commits = [] + for orig_id in (o.id for o in original_mr_commits): + if not any(b for b in backport_mr_commits if orig_id in b.message): + missing_commits.append(orig_id) + if missing_commits: + msg = ( + f"The following commits from original MR !{original_mr_id} " + "are not referenced in any of the backport commits:" + ) + msg += "" + if not is_full_backport: + message(msg) else: - msg = ( - f"Commit {orig_commit.id} from original MR !{original_mr_id} " - "is not referenced in any of the backport commits." + msg += ( + "Please use `-x` when cherry-picking to include " + "the full original commit ID. Alternatively, use the " + "`Backport::Partial` label if not all original " + "commits are meant to be backported." ) - if not is_full_backport: - message(msg) - else: - msg += ( - " Please use `-x` when cherry-picking to include " - "the full original commit ID. Alternately, use the " - "`Backport::Partial` label if not all original " - "commits are meant to be backported." - ) - fail(msg) + fail(msg) else: if not version_labels: fail(