From 19621efa1c75cf41a34868756f3dc8a5a6aa31c0 Mon Sep 17 00:00:00 2001 From: Patrick Donnelly Date: Thu, 26 Feb 2026 20:14:40 -0500 Subject: [PATCH] script/redmine-upkeep: do not warn for backport PRs Do not warn that a backport PR is claiming to fix a non-backport tracker ticket which is not linked to the backport PR. Signed-off-by: Patrick Donnelly --- src/script/redmine-upkeep.py | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/script/redmine-upkeep.py b/src/script/redmine-upkeep.py index af5e6ae8855..ccf5acbd278 100755 --- a/src/script/redmine-upkeep.py +++ b/src/script/redmine-upkeep.py @@ -1289,9 +1289,13 @@ h2. Update Payload issues = self.R.issue.filter(**filters) processed_issue_ids = set() + is_backport_pr = False + if len(issues) > 0: log.info(f"Found {len(issues)} linked issue(s). Applying transformations.") for issue in issues: + if issue.tracker.id == REDMINE_TRACKER_ID_BACKPORT: + is_backport_pr = True self._process_issue_transformations(issue) processed_issue_ids.add(issue.id) # Still, check commit logs. @@ -1308,8 +1312,22 @@ h2. Update Payload fixes_regex = re.compile(r"Fixes: https://tracker.ceph.com/issues/(\d+)", re.MULTILINE) commit_fixes = set(fixes_regex.findall(commit.message)) for tracker_id in commit_fixes: - log.info(f"Commit {commit.hexsha} claims to fix https://tracker.ceph.com/issues/{tracker_id}") - found_tracker_ids.add(int(tracker_id)) + try: + t_id = int(tracker_id) + + # If this is a backport PR, ignore "Fixes:" tags pointing to main trackers + if is_backport_pr: + referenced_issue = self.R.issue.get(t_id) + if referenced_issue.tracker.id != REDMINE_TRACKER_ID_BACKPORT: + log.info(f"Ignoring 'Fixes:' tag for main tracker #{t_id} in backport PR context.") + continue + + log.info(f"Commit {commit.hexsha} claims to fix https://tracker.ceph.com/issues/{t_id}") + found_tracker_ids.add(t_id) + except Exception as e: + log.warning(f"Could not verify tracker #{tracker_id}: {e}") + # Fallback to adding it if verification fails just in case + found_tracker_ids.add(int(tracker_id)) except git.exc.GitCommandError as e: log.error(f"Git command failed for commit SHA '{merge_commit_sha}': {e}. Ensure the commit exists in the local repository.") return -- 2.47.3