add line number

This commit is contained in:
mrT23
2023-10-05 17:59:08 +03:00
parent 989c56220b
commit 72eecbbf61
2 changed files with 39 additions and 38 deletions

View File

@ -1,3 +1,4 @@
import hashlib
import logging import logging
import re import re
from typing import Optional, Tuple from typing import Optional, Tuple
@ -7,7 +8,7 @@ import gitlab
from gitlab import GitlabGetError from gitlab import GitlabGetError
from ..algo.language_handler import is_valid_file from ..algo.language_handler import is_valid_file
from ..algo.pr_processing import clip_tokens from ..algo.pr_processing import clip_tokens, find_line_number_of_relevant_line_in_file
from ..algo.utils import load_large_diff from ..algo.utils import load_large_diff
from ..config_loader import get_settings from ..config_loader import get_settings
from .git_provider import EDIT_TYPE, FilePatchInfo, GitProvider from .git_provider import EDIT_TYPE, FilePatchInfo, GitProvider
@ -386,27 +387,26 @@ class GitLabProvider(GitProvider):
except: except:
return "" return ""
# def generate_link_to_relevant_line_number(self, suggestion) -> str: def generate_link_to_relevant_line_number(self, suggestion) -> str:
# try: try:
# relevant_file = suggestion['relevant file'].strip('`').strip("'") relevant_file = suggestion['relevant file'].strip('`').strip("'")
# relevant_line_str = suggestion['relevant line'] relevant_line_str = suggestion['relevant line']
# if not relevant_line_str: if not relevant_line_str:
# return "" return ""
#
# position, absolute_position = find_line_number_of_relevant_line_in_file \ position, absolute_position = find_line_number_of_relevant_line_in_file \
# (self.diff_files, relevant_file, relevant_line_str) (self.diff_files, relevant_file, relevant_line_str)
#
# if absolute_position != -1: if absolute_position != -1:
# # # link to right file only # link to right file only
# # link = f"https://github.com/{self.repo}/blob/{self.pr.head.sha}/{relevant_file}" \ link = f"https://gitlab.com/codiumai/pr-agent/-/blob/{self.mr.target_branch}/{relevant_file}?ref_type=heads#L{absolute_position}"
# # + "#" + f"L{absolute_position}"
# # # link to diff
# # link to diff # sha_file = hashlib.sha1(relevant_file.encode('utf-8')).hexdigest()
# sha_file = hashlib.sha1(relevant_file.encode('utf-8')).hexdigest() # link = f"{self.pr.web_url}/diffs#{sha_file}_{absolute_position}_{absolute_position}"
# link = f"{self.pr.web_url}/diffs#{sha_file}_{absolute_position}_{absolute_position}" return link
# return link except Exception as e:
# except Exception as e: if get_settings().config.verbosity_level >= 2:
# if get_settings().config.verbosity_level >= 2: logging.info(f"Failed adding line link, error: {e}")
# logging.info(f"Failed adding line link, error: {e}")
# return ""
# return ""

View File

@ -210,19 +210,20 @@ class PRReviewer:
if link: if link:
suggestion['relevant line'] = f"[{suggestion['relevant line']}]({link})" suggestion['relevant line'] = f"[{suggestion['relevant line']}]({link})"
else: else:
try: pass
relevant_file = suggestion['relevant file'].strip('`').strip("'") # try:
relevant_line_str = suggestion['relevant line'] # relevant_file = suggestion['relevant file'].strip('`').strip("'")
if not relevant_line_str: # relevant_line_str = suggestion['relevant line']
return "" # 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) # position, absolute_position = find_line_number_of_relevant_line_in_file(
if absolute_position != -1: # self.git_provider.diff_files, relevant_file, relevant_line_str)
suggestion[ # if absolute_position != -1:
'relevant line'] = f"{suggestion['relevant line']} (line {absolute_position})" # suggestion[
except: # 'relevant line'] = f"{suggestion['relevant line']} (line {absolute_position})"
pass # except:
# pass
# Add incremental review section # Add incremental review section