refactor: simplify Bitbucket client initialization logic and improve code readability

This commit is contained in:
ofir-frd 2025-08-15 15:34:40 +03:00
parent 10a7a0fbef
commit 8f9ad2b38e

View file

@ -41,31 +41,20 @@ class BitbucketServerProvider(GitProvider):
# Get username and password from settings # Get username and password from settings
username = get_settings().get("BITBUCKET_SERVER.USERNAME", None) username = get_settings().get("BITBUCKET_SERVER.USERNAME", None)
password = get_settings().get("BITBUCKET_SERVER.PASSWORD", None) password = get_settings().get("BITBUCKET_SERVER.PASSWORD", None)
# If bitbucket_client is provided, try to extract the server URL from its configuration if bitbucket_client: # if Bitbucket client is provided, use it
if bitbucket_client:
self.bitbucket_client = bitbucket_client self.bitbucket_client = bitbucket_client
try: self.bitbucket_server_url = getattr(bitbucket_client, 'url', None) or self._parse_bitbucket_server(pr_url)
# Get the base URL from the existing client
self.bitbucket_server_url = bitbucket_client.url
except AttributeError:
# If we can't get the URL from the client, try parsing it from PR URL
self.bitbucket_server_url = self._parse_bitbucket_server(url=pr_url) if pr_url else None
else: else:
# Parse server URL from PR URL self.bitbucket_server_url = self._parse_bitbucket_server(pr_url)
self.bitbucket_server_url = self._parse_bitbucket_server(url=pr_url) if pr_url else None if not self.bitbucket_server_url:
raise ValueError("Invalid or missing Bitbucket Server URL parsed from PR URL.")
# Validate the server URL unless we have a pre-configured client if self.bearer_token: # if bearer token is provided, use it
if not bitbucket_client and not self.bitbucket_server_url:
raise ValueError("Invalid or missing Bitbucket Server URL parsed from PR URL.")
# If no client provided, create one with the appropriate authentication
if not bitbucket_client:
if self.bearer_token:
self.bitbucket_client = Bitbucket( self.bitbucket_client = Bitbucket(
url=self.bitbucket_server_url, url=self.bitbucket_server_url,
token=self.bearer_token token=self.bearer_token
) )
else: else: # otherwise use username and password
self.bitbucket_client = Bitbucket( self.bitbucket_client = Bitbucket(
url=self.bitbucket_server_url, url=self.bitbucket_server_url,
username=username, username=username,