Add error handling for release notes generation with fallback to static message

- Wrap previous_published_release_tag, collect_release_commits, and generate_release_body_with_openrouter in try-except block - Catch SystemExit to handle generation failures gracefully - Initialize previous_release_tag, commits, and body with default values before try block - Fall back to "Failed to generate release notes." message on error - Print error message to stderr when release note generation fails - Remove

frdel committed Mar 26, 2026 at 20:13 UTC af602e40e9bfd29fd4e6a7d7da4ea142646b0fad
1 file changed +13 -4
.github/scripts/docker_release_plan.py
+13 -4
@@ -692,14 +692,23 @@ def resolve_release_command() -> None:
692 )
693 return
694
695 - previous_release_tag = previous_published_release_tag(config, source_tag)
696 - commits = collect_release_commits(previous_release_tag, source_tag)
697 - body = generate_release_body_with_openrouter(commits)
695 + previous_release_tag = ""
696 + commits: list[CommitEntry] = []
697 + body = "Failed to generate release notes."
698 + try:
699 + previous_release_tag = previous_published_release_tag(config, source_tag) or ""
700 + commits = collect_release_commits(previous_release_tag or None, source_tag)
701 + body = generate_release_body_with_openrouter(commits)
702 + except SystemExit:
703 + print(
704 + f"Release note generation failed for `{source_tag}`. Falling back to a static release body.",
705 + file=sys.stderr,
706 + )
707
708 write_output("should_release", "true")
709 write_output("release_tag", source_tag)
710 write_output("release_name", source_tag)
702 - write_output("previous_release_tag", previous_release_tag or "")
711 + write_output("previous_release_tag", previous_release_tag)
712 write_output("release_commit_count", str(len(commits)))
713 write_output("release_body", body)
714 print(source_tag)