From e14beacc19fff26fd66037f0e4579517727d4c85 Mon Sep 17 00:00:00 2001 From: Kris Rane Date: Thu, 7 Aug 2025 17:56:46 +0800 Subject: [PATCH] feat: enhance BitbucketServerProvider authentication with username and password fallback --- .../git_providers/bitbucket_server_provider.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/pr_agent/git_providers/bitbucket_server_provider.py b/pr_agent/git_providers/bitbucket_server_provider.py index 43cdad7c..ab249b57 100644 --- a/pr_agent/git_providers/bitbucket_server_provider.py +++ b/pr_agent/git_providers/bitbucket_server_provider.py @@ -38,10 +38,22 @@ class BitbucketServerProvider(GitProvider): self.diff_files = None self.bitbucket_pull_request_api_url = pr_url self.bearer_token = get_settings().get("BITBUCKET_SERVER.BEARER_TOKEN", None) + #get username and password from settings + self.username = get_settings().get("BITBUCKET_SERVER.USERNAME", None) + self.password = get_settings().get("BITBUCKET_SERVER.PASSWORD", None) self.bitbucket_server_url = self._parse_bitbucket_server(url=pr_url) - self.bitbucket_client = bitbucket_client or Bitbucket(url=self.bitbucket_server_url, - token=get_settings().get("BITBUCKET_SERVER.BEARER_TOKEN", - None)) + #if bearer token is provided, use it to authenticate, otherwise use username and password + if self.bearer_token: + self.bitbucket_client = bitbucket_client or Bitbucket( + url=self.bitbucket_server_url, + token=self.bearer_token + ) + else: + self.bitbucket_client = bitbucket_client or Bitbucket( + url=self.bitbucket_server_url, + username=self.username, + password=self.password + ) try: self.bitbucket_api_version = parse_version(self.bitbucket_client.get("rest/api/1.0/application-properties").get('version')) except Exception: