From 90e566007c78af6d3b4947013bd94db2ae4909f2 Mon Sep 17 00:00:00 2001 From: Kaxil Naik Date: Thu, 3 Jul 2025 11:51:39 +0530 Subject: [PATCH] [v3-0-test] Dev: Fix KeyError in release issue content generation (#52751) When generating issue content for releases, some PRs were being filtered out during processing (e.g., dependabot PRs, doc-only PRs) but still remained in the `pull_requests` dictionary. This caused a `KeyError` when the Jinja2 template tried to access `user_logins` for PRs that had no corresponding user data. The fix ensures that `pr_list` variable only contains PRs that have corresponding entries in the users dictionary, preventing the template from accessing undefined keys. Fixes issue where `breeze release-management generate-issue-content-core` command failed with "UndefinedError: dict object has no element ". (cherry picked from commit 19da28163042a2a4924d905cdb81c22857486c73) Co-authored-by: Kaxil Naik --- .../src/airflow_breeze/commands/release_management_commands.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dev/breeze/src/airflow_breeze/commands/release_management_commands.py b/dev/breeze/src/airflow_breeze/commands/release_management_commands.py index aa956422e0922..54492becae8d3 100644 --- a/dev/breeze/src/airflow_breeze/commands/release_management_commands.py +++ b/dev/breeze/src/airflow_breeze/commands/release_management_commands.py @@ -2632,7 +2632,8 @@ def print_issue_content( if is_helm_chart: link = f"https://dist.apache.org/repos/dist/dev/airflow/{current_release}" link_text = f"Apache Airflow Helm Chart {current_release.split('/')[-1]}" - pr_list = sorted(pull_requests.keys()) + # Only include PRs that have corresponding user data to avoid KeyError in template + pr_list = sorted([pr for pr in pull_requests.keys() if pr in users]) user_logins: dict[int, str] = {pr: " ".join(f"@{u}" for u in uu) for pr, uu in users.items()} all_users: set[str] = set() for user_list in users.values():