mirror of
https://github.com/qodo-ai/pr-agent.git
synced 2025-07-04 21:00:40 +08:00
Implement get_repo_settings for BitbucketProvider
This commit is contained in:
@ -92,6 +92,7 @@ pip install -r requirements.txt
|
|||||||
|
|
||||||
```
|
```
|
||||||
cp pr_agent/settings/.secrets_template.toml pr_agent/settings/.secrets.toml
|
cp pr_agent/settings/.secrets_template.toml pr_agent/settings/.secrets.toml
|
||||||
|
chmod 600 pr_agent/settings/.secrets.toml
|
||||||
# Edit .secrets.toml file
|
# Edit .secrets.toml file
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -93,6 +93,13 @@ class BitbucketProvider:
|
|||||||
def get_issue_comments(self):
|
def get_issue_comments(self):
|
||||||
raise NotImplementedError("Bitbucket provider does not support issue comments yet")
|
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]:
|
def add_eyes_reaction(self, issue_comment_id: int) -> Optional[int]:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
@ -104,7 +111,7 @@ class BitbucketProvider:
|
|||||||
parsed_url = urlparse(pr_url)
|
parsed_url = urlparse(pr_url)
|
||||||
|
|
||||||
if 'bitbucket.org' not in parsed_url.netloc:
|
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('/')
|
path_parts = parsed_url.path.strip('/').split('/')
|
||||||
|
|
||||||
|
@ -89,6 +89,10 @@ class GitProvider(ABC):
|
|||||||
def get_issue_comments(self):
|
def get_issue_comments(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@abstractmethod
|
||||||
|
def get_repo_settings(self):
|
||||||
|
pass
|
||||||
|
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def add_eyes_reaction(self, issue_comment_id: int) -> Optional[int]:
|
def add_eyes_reaction(self, issue_comment_id: int) -> Optional[int]:
|
||||||
pass
|
pass
|
||||||
|
10
tests/unittest/test_bitbucket_provider.py
Normal file
10
tests/unittest/test_bitbucket_provider.py
Normal 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
|
Reference in New Issue
Block a user