mirror of
https://github.com/qodo-ai/pr-agent.git
synced 2025-07-04 21:00:40 +08:00
add line number
This commit is contained in:
@ -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 ""
|
|
||||||
|
@ -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
|
||||||
|
Reference in New Issue
Block a user