mirror of
https://github.com/qodo-ai/pr-agent.git
synced 2025-07-08 14:50:40 +08:00
similar_issue feature is working for github and bitbucket
This commit is contained in:
@ -10,6 +10,7 @@ from ..algo.pr_processing import find_line_number_of_relevant_line_in_file
|
|||||||
from ..config_loader import get_settings
|
from ..config_loader import get_settings
|
||||||
from ..log import get_logger
|
from ..log import get_logger
|
||||||
from .git_provider import FilePatchInfo, GitProvider
|
from .git_provider import FilePatchInfo, GitProvider
|
||||||
|
import ast
|
||||||
|
|
||||||
|
|
||||||
class BitbucketProvider(GitProvider):
|
class BitbucketProvider(GitProvider):
|
||||||
@ -350,4 +351,17 @@ class BitbucketProvider(GitProvider):
|
|||||||
|
|
||||||
def check_if_issue_pull_request(self, issue):
|
def check_if_issue_pull_request(self, issue):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def get_issue_numbers(self, issue):
|
||||||
|
list_of_issue_numbers = []
|
||||||
|
for issue in issue:
|
||||||
|
list_of_issue_numbers.append(issue.id)
|
||||||
|
return str(list_of_issue_numbers)
|
||||||
|
|
||||||
|
def get_issue_numbers_from_list(self, issues):
|
||||||
|
# convert str to list'
|
||||||
|
int_list = ast.literal_eval(issues)
|
||||||
|
int_list = [int(x) for x in int_list]
|
||||||
|
for issue_number in int_list:
|
||||||
|
return issue_number
|
||||||
|
|
||||||
|
@ -494,7 +494,7 @@ class GithubProvider(GitProvider):
|
|||||||
return comment.body
|
return comment.body
|
||||||
|
|
||||||
def get_issue(self, workspace_slug, repo_name, original_issue_number):
|
def get_issue(self, workspace_slug, repo_name, original_issue_number):
|
||||||
return self.repo_obj.get_issue(original_issue_number)
|
return self.repo_obj.get_issue(int(original_issue_number))
|
||||||
|
|
||||||
def get_repo_obj(self, workspace_slug, repo_name):
|
def get_repo_obj(self, workspace_slug, repo_name):
|
||||||
return self.github_client.get_repo(repo_name)
|
return self.github_client.get_repo(repo_name)
|
||||||
@ -506,4 +506,10 @@ class GithubProvider(GitProvider):
|
|||||||
if issue.pull_request:
|
if issue.pull_request:
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def get_issue_numbers(self, issues_list):
|
||||||
|
return str([issue.number for issue in issues_list])
|
||||||
|
|
||||||
|
def get_issue_numbers_from_list(self, r):
|
||||||
|
return int(r.split('.')[0].split('_')[-1])
|
||||||
|
|
||||||
|
@ -129,11 +129,11 @@ class PRSimilarIssue:
|
|||||||
continue
|
continue
|
||||||
|
|
||||||
try:
|
try:
|
||||||
issue_number = int(r["id"].split('.')[0].split('_')[-1])
|
issue_id= r['id']
|
||||||
|
issue_number = self.git_provider.get_issue_numbers_from_list(issue_id)
|
||||||
except:
|
except:
|
||||||
get_logger().debug(f"Failed to parse issue number from {r['id']}")
|
get_logger().debug(f"Failed to parse issue number from {r['id']}")
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if original_issue_number == issue_number:
|
if original_issue_number == issue_number:
|
||||||
continue
|
continue
|
||||||
if issue_number not in relevant_issues_number_list:
|
if issue_number not in relevant_issues_number_list:
|
||||||
@ -171,8 +171,9 @@ class PRSimilarIssue:
|
|||||||
def _update_index_with_issues(self, issues_list, repo_name_for_index, upsert=False):
|
def _update_index_with_issues(self, issues_list, repo_name_for_index, upsert=False):
|
||||||
get_logger().info('Processing issues...')
|
get_logger().info('Processing issues...')
|
||||||
corpus = Corpus()
|
corpus = Corpus()
|
||||||
|
issues = self.git_provider.get_issue_numbers(issues_list)
|
||||||
example_issue_record = Record(
|
example_issue_record = Record(
|
||||||
id=str([issue.number for issue in issues_list]),
|
id=str(issues),
|
||||||
text="example_issue",
|
text="example_issue",
|
||||||
metadata=Metadata(repo=repo_name_for_index)
|
metadata=Metadata(repo=repo_name_for_index)
|
||||||
)
|
)
|
||||||
|
Reference in New Issue
Block a user