Implement get_repo_settings for BitbucketProvider

This commit is contained in:
Phill Zarfos
2023-08-13 18:25:11 -04:00
parent cc7be0811a
commit f82b9620af
4 changed files with 23 additions and 1 deletions

View File

@ -92,6 +92,7 @@ pip install -r requirements.txt
```
cp pr_agent/settings/.secrets_template.toml pr_agent/settings/.secrets.toml
chmod 600 pr_agent/settings/.secrets.toml
# Edit .secrets.toml file
```

View File

@ -93,6 +93,13 @@ class BitbucketProvider:
def get_issue_comments(self):
raise NotImplementedError("Bitbucket provider does not support issue comments yet")
def get_repo_settings(self):
try:
contents = self.repo_obj.get_contents(".pr_agent.toml", ref=self.pr.head.sha).decoded_content
return contents
except Exception:
return ""
def add_eyes_reaction(self, issue_comment_id: int) -> Optional[int]:
return True
@ -104,7 +111,7 @@ class BitbucketProvider:
parsed_url = urlparse(pr_url)
if 'bitbucket.org' not in parsed_url.netloc:
raise ValueError("The provided URL is not a valid GitHub URL")
raise ValueError("The provided URL is not a valid Bitbucket URL")
path_parts = parsed_url.path.strip('/').split('/')

View File

@ -89,6 +89,10 @@ class GitProvider(ABC):
def get_issue_comments(self):
pass
@abstractmethod
def get_repo_settings(self):
pass
@abstractmethod
def add_eyes_reaction(self, issue_comment_id: int) -> Optional[int]:
pass

View File

@ -0,0 +1,10 @@
from pr_agent.git_providers.bitbucket_provider import BitbucketProvider
class TestBitbucketProvider:
def test_parse_pr_url(self):
url = "https://bitbucket.org/WORKSPACE_XYZ/MY_TEST_REPO/pull-requests/321"
workspace_slug, repo_slug, pr_number = BitbucketProvider._parse_pr_url(url)
assert workspace_slug == "WORKSPACE_XYZ"
assert repo_slug == "MY_TEST_REPO"
assert pr_number == 321