From 9579be028da93981845abe8c7477ed01fbcacd9e Mon Sep 17 00:00:00 2001 From: mrT23 Date: Thu, 1 Feb 2024 08:31:11 +0200 Subject: [PATCH] protections for 'get_secret_provider' --- pr_agent/secret_providers/__init__.py | 23 +++++++++++++---------- pr_agent/servers/bitbucket_app.py | 3 ++- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/pr_agent/secret_providers/__init__.py b/pr_agent/secret_providers/__init__.py index 1cc3ea7b..020ed16c 100644 --- a/pr_agent/secret_providers/__init__.py +++ b/pr_agent/secret_providers/__init__.py @@ -2,15 +2,18 @@ from pr_agent.config_loader import get_settings def get_secret_provider(): - try: - provider_id = get_settings().config.secret_provider - except AttributeError as e: - raise ValueError("secret_provider is a required attribute in the configuration file") from e - try: - if provider_id == 'google_cloud_storage': + if not get_settings().get("CONFIG.SECRET_PROVIDER"): + return None + + provider_id = get_settings().config.secret_provider + if provider_id == 'google_cloud_storage': + try: from pr_agent.secret_providers.google_cloud_storage_secret_provider import GoogleCloudStorageSecretProvider return GoogleCloudStorageSecretProvider() - else: - raise ValueError(f"Unknown secret provider: {provider_id}") - except Exception as e: - raise ValueError(f"Failed to initialize secret provider {provider_id}") from e + except Exception as e: + raise ValueError(f"Failed to initialize google_cloud_storage secret provider {provider_id}") from e + else: + raise ValueError("Unknown SECRET_PROVIDER") + + + diff --git a/pr_agent/servers/bitbucket_app.py b/pr_agent/servers/bitbucket_app.py index bdb972c7..d2cae362 100644 --- a/pr_agent/servers/bitbucket_app.py +++ b/pr_agent/servers/bitbucket_app.py @@ -26,7 +26,8 @@ from pr_agent.tools.pr_reviewer import PRReviewer setup_logger(fmt=LoggingFormat.JSON) router = APIRouter() -secret_provider = get_secret_provider() +secret_provider = get_secret_provider() if get_settings().get("CONFIG.SECRET_PROVIDER") else None + async def get_bearer_token(shared_secret: str, client_key: str): try: