From 64eeaeb5282dd3f4b5b2e293f104f9cebd83ac2f Mon Sep 17 00:00:00 2001 From: ykeremy Date: Thu, 18 Jul 2024 16:05:50 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=84=20synced=20local=20'skyvern/'=20wi?= =?UTF-8?q?th=20remote=20'skyvern/'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit | :rocket: | This description was created by [Ellipsis](https://www.ellipsis.dev) for commit 7a27cdd2e6a3d9fa2949a81b130c8b07eed67276 | |--------|--------| ### Summary: Added null check for email credentials in `is_valid_email` and updated its usage in `get_secret_value_from_url` method of `BitwardenService`. **Key points**: - Updated `is_valid_email` function in `skyvern/forge/sdk/services/bitwarden.py` to handle `None` values. - Modified `get_secret_value_from_url` method in `BitwardenService` to use the updated `is_valid_email` function. - Added a null check for email credentials to prevent errors when email is missing. ---- Generated with :heart: by [ellipsis.dev](https://www.ellipsis.dev) --- skyvern/forge/sdk/services/bitwarden.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/skyvern/forge/sdk/services/bitwarden.py b/skyvern/forge/sdk/services/bitwarden.py index 5295375b6..b48690188 100644 --- a/skyvern/forge/sdk/services/bitwarden.py +++ b/skyvern/forge/sdk/services/bitwarden.py @@ -18,7 +18,9 @@ LOG = structlog.get_logger() -def is_valid_email(email: str) -> bool: +def is_valid_email(email: str | None) -> bool: + if not email: + return False pattern = r"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$" return re.match(pattern, email) is not None @@ -140,10 +142,9 @@ def get_secret_value_from_url( # if no cred matches the rule, return the first one. # TODO: For now hard code to choose the first valid email username for cred in credentials: - if is_valid_email(cred.get(BitwardenConstants.USERNAME, "")): + if is_valid_email(cred.get(BitwardenConstants.USERNAME)): return cred - - LOG.warning("No credential in Bitwarden matches the rule, returning the frist match") + LOG.warning("No credential in Bitwarden matches the rule, returning the first match") return credentials[0] finally: # Step 4: Log out