diff --git a/pr_agent/git_providers/gitlab_provider.py b/pr_agent/git_providers/gitlab_provider.py index 350efcfc..15b76dd8 100644 --- a/pr_agent/git_providers/gitlab_provider.py +++ b/pr_agent/git_providers/gitlab_provider.py @@ -385,3 +385,28 @@ class GitLabProvider(GitProvider): return pr_id except: return "" + + # def generate_link_to_relevant_line_number(self, suggestion) -> str: + # try: + # relevant_file = suggestion['relevant file'].strip('`').strip("'") + # relevant_line_str = suggestion['relevant line'] + # if not relevant_line_str: + # return "" + # + # position, absolute_position = find_line_number_of_relevant_line_in_file \ + # (self.diff_files, relevant_file, relevant_line_str) + # + # if absolute_position != -1: + # # # link to right file only + # # link = f"https://github.com/{self.repo}/blob/{self.pr.head.sha}/{relevant_file}" \ + # # + "#" + f"L{absolute_position}" + # + # # link to diff + # sha_file = hashlib.sha1(relevant_file.encode('utf-8')).hexdigest() + # link = f"{self.pr.web_url}/diffs#{sha_file}_{absolute_position}_{absolute_position}" + # return link + # except Exception as e: + # if get_settings().config.verbosity_level >= 2: + # logging.info(f"Failed adding line link, error: {e}") + # + # return "" diff --git a/pr_agent/tools/pr_reviewer.py b/pr_agent/tools/pr_reviewer.py index 01e3f276..a0d9394c 100644 --- a/pr_agent/tools/pr_reviewer.py +++ b/pr_agent/tools/pr_reviewer.py @@ -209,6 +209,21 @@ class PRReviewer: link = self.git_provider.generate_link_to_relevant_line_number(suggestion) if link: suggestion['relevant line'] = f"[{suggestion['relevant line']}]({link})" + else: + try: + relevant_file = suggestion['relevant file'].strip('`').strip("'") + relevant_line_str = suggestion['relevant line'] + if not relevant_line_str: + return "" + + position, absolute_position = find_line_number_of_relevant_line_in_file( + self.git_provider.diff_files, relevant_file, relevant_line_str) + if absolute_position != -1: + suggestion[ + 'relevant line'] = f"{suggestion['relevant line']} (line {absolute_position})" + except: + pass + # Add incremental review section if self.incremental.is_incremental: