You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ru...@apache.org on 2026/04/24 22:33:35 UTC

(superset) 01/01: address review: reject key extraction when GPG verification fails

This is an automated email from the ASF dual-hosted git repository.

rusackas pushed a commit to branch chore/verify-release-email-parsing
in repository https://gitbox.apache.org/repos/asf/superset.git

commit f32194a58bb0e9b64ca0babbb371fd453caa37b4
Author: Evan Rusackas <ev...@rusackas.com>
AuthorDate: Fri Apr 24 15:33:13 2026 -0700

    address review: reject key extraction when GPG verification fails
---
 RELEASING/verify_release.py | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/RELEASING/verify_release.py b/RELEASING/verify_release.py
index 9e0347bc146..e69f5c1ddf2 100755
--- a/RELEASING/verify_release.py
+++ b/RELEASING/verify_release.py
@@ -100,6 +100,18 @@ def get_gpg_info(filename: str) -> tuple[Optional[str], Optional[str]]:
         )
         output = result.stderr.decode()
 
+    # If the signature was not actually verified, do not trust the key ID or
+    # email pulled from signature metadata — returning them would let the
+    # caller report the release as "verified" when GPG never validated it.
+    if result.returncode != 0 or "Good signature" not in output:
+        print("Warning: GPG could not verify the signature.")
+        if "No public key" in output:
+            print(
+                "Hint: public key is not in your keyring. Import it with:\n"
+                f"  curl -s {KEYS_URL} | gpg --import"
+            )
+        return None, None
+
     rsa_key = re.search(r"RSA key ([0-9A-F]+)", output)
     eddsa_key = re.search(r"EDDSA key ([0-9A-F]+)", output)
 
@@ -129,11 +141,6 @@ def get_gpg_info(filename: str) -> tuple[Optional[str], Optional[str]]:
         print(f"Email found: {email_result}")
     else:
         print("Warning: No email address found in GPG verification output.")
-        if "No public key" in output:
-            print(
-                "Hint: public key is not in your keyring. Import it with:\n"
-                f"  curl -s {KEYS_URL} | gpg --import"
-            )
 
     return key_result, email_result