diff --git a/pr_agent/git_providers/bitbucket_provider.py b/pr_agent/git_providers/bitbucket_provider.py index a85d9099..04b5422b 100644 --- a/pr_agent/git_providers/bitbucket_provider.py +++ b/pr_agent/git_providers/bitbucket_provider.py @@ -10,6 +10,7 @@ from ..algo.pr_processing import find_line_number_of_relevant_line_in_file from ..config_loader import get_settings from ..log import get_logger from .git_provider import FilePatchInfo, GitProvider +import ast class BitbucketProvider(GitProvider): @@ -350,4 +351,17 @@ class BitbucketProvider(GitProvider): def check_if_issue_pull_request(self, issue): 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 diff --git a/pr_agent/git_providers/github_provider.py b/pr_agent/git_providers/github_provider.py index e3bda3ff..1955cc18 100644 --- a/pr_agent/git_providers/github_provider.py +++ b/pr_agent/git_providers/github_provider.py @@ -494,7 +494,7 @@ class GithubProvider(GitProvider): return comment.body 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): return self.github_client.get_repo(repo_name) @@ -506,4 +506,10 @@ class GithubProvider(GitProvider): if issue.pull_request: return True 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]) diff --git a/pr_agent/tools/pr_similar_issue.py b/pr_agent/tools/pr_similar_issue.py index 025c16fe..a177e791 100644 --- a/pr_agent/tools/pr_similar_issue.py +++ b/pr_agent/tools/pr_similar_issue.py @@ -129,11 +129,11 @@ class PRSimilarIssue: continue 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: get_logger().debug(f"Failed to parse issue number from {r['id']}") continue - if original_issue_number == issue_number: continue 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): get_logger().info('Processing issues...') corpus = Corpus() + issues = self.git_provider.get_issue_numbers(issues_list) example_issue_record = Record( - id=str([issue.number for issue in issues_list]), + id=str(issues), text="example_issue", metadata=Metadata(repo=repo_name_for_index) )