mirror of
https://github.com/qodo-ai/pr-agent.git
synced 2025-07-05 13:20:39 +08:00
fixes
This commit is contained in:
@ -354,6 +354,11 @@ class AzureDevopsProvider(GitProvider):
|
|||||||
file, new_file_content_str, original_file_content_str, show_warning=False
|
file, new_file_content_str, original_file_content_str, show_warning=False
|
||||||
).rstrip()
|
).rstrip()
|
||||||
|
|
||||||
|
# count number of lines added and removed
|
||||||
|
patch_lines = patch.splitlines(keepends=True)
|
||||||
|
num_plus_lines = len([line for line in patch_lines if line.startswith('+')])
|
||||||
|
num_minus_lines = len([line for line in patch_lines if line.startswith('-')])
|
||||||
|
|
||||||
diff_files.append(
|
diff_files.append(
|
||||||
FilePatchInfo(
|
FilePatchInfo(
|
||||||
original_file_content_str,
|
original_file_content_str,
|
||||||
@ -361,6 +366,8 @@ class AzureDevopsProvider(GitProvider):
|
|||||||
patch=patch,
|
patch=patch,
|
||||||
filename=file,
|
filename=file,
|
||||||
edit_type=edit_type,
|
edit_type=edit_type,
|
||||||
|
num_plus_lines=num_plus_lines,
|
||||||
|
num_minus_lines=num_minus_lines,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
get_logger().info(f"Invalid files: {invalid_files_names}")
|
get_logger().info(f"Invalid files: {invalid_files_names}")
|
||||||
|
@ -11,7 +11,7 @@ from pr_agent.algo.pr_processing import get_pr_diff, get_pr_multi_diffs, retry_w
|
|||||||
from pr_agent.algo.token_handler import TokenHandler
|
from pr_agent.algo.token_handler import TokenHandler
|
||||||
from pr_agent.algo.utils import load_yaml, replace_code_tags, ModelType, show_relevant_configurations
|
from pr_agent.algo.utils import load_yaml, replace_code_tags, ModelType, show_relevant_configurations
|
||||||
from pr_agent.config_loader import get_settings
|
from pr_agent.config_loader import get_settings
|
||||||
from pr_agent.git_providers import get_git_provider, get_git_provider_with_context
|
from pr_agent.git_providers import get_git_provider, get_git_provider_with_context, GithubProvider, GitLabProvider
|
||||||
from pr_agent.git_providers.git_provider import get_main_pr_language
|
from pr_agent.git_providers.git_provider import get_main_pr_language
|
||||||
from pr_agent.log import get_logger
|
from pr_agent.log import get_logger
|
||||||
from pr_agent.servers.help import HelpMessage
|
from pr_agent.servers.help import HelpMessage
|
||||||
@ -602,40 +602,3 @@ class PRCodeSuggestions:
|
|||||||
return ""
|
return ""
|
||||||
return response_reflect
|
return response_reflect
|
||||||
|
|
||||||
async def handle_apply_suggestion(self):
|
|
||||||
try:
|
|
||||||
get_logger().info('Processing "apply" suggestion...')
|
|
||||||
suggestion_number = get_settings().apply_suggestion
|
|
||||||
comment_after = get_settings().pr_code_suggestions.get('comment_after', None)
|
|
||||||
if suggestion_number is None or comment_after is None:
|
|
||||||
get_logger().error('Invalid suggestion number or comment_after')
|
|
||||||
return False
|
|
||||||
suggestions = parse_suggestions_content(comment_after)
|
|
||||||
if not suggestions:
|
|
||||||
get_logger().error('Failed to parse suggestions')
|
|
||||||
return False
|
|
||||||
suggestion = suggestions[suggestion_number]
|
|
||||||
if hasattr(self, 'main_language'):
|
|
||||||
self.git_provider.main_language = self.main_language
|
|
||||||
relevant_file = suggestion['suggestion_orig_location']['filename']
|
|
||||||
relevant_lines_start = int(suggestion['suggestion_orig_location']['start_line'])
|
|
||||||
relevant_lines_end = int(suggestion['suggestion_orig_location']['end_line'])
|
|
||||||
content = suggestion['suggestion_summary']
|
|
||||||
new_code_snippet = suggestion['new_code_snippet']
|
|
||||||
label = suggestion['category']
|
|
||||||
score = suggestion['score']
|
|
||||||
if new_code_snippet:
|
|
||||||
new_code_snippet = self.dedent_code(relevant_file, relevant_lines_start, new_code_snippet)
|
|
||||||
body = f"**Suggestion:** {content} [{label}, importance: {score}]\n```suggestion\n" + new_code_snippet + "\n```"
|
|
||||||
original_suggestion = suggestion
|
|
||||||
code_suggestions = [({'original_suggestion': original_suggestion,
|
|
||||||
'body': body, 'relevant_file': relevant_file,
|
|
||||||
'relevant_lines_start': relevant_lines_start,
|
|
||||||
'relevant_lines_end': relevant_lines_end})]
|
|
||||||
is_successful = self.git_provider.publish_code_suggestions(code_suggestions)
|
|
||||||
get_settings().set("suggestion_score", score)
|
|
||||||
get_settings().set("suggestion_label", label)
|
|
||||||
except Exception as e:
|
|
||||||
get_logger().info(f"Failed to apply suggestion, error: {e}")
|
|
||||||
is_successful = False
|
|
||||||
return is_successful
|
|
||||||
|
Reference in New Issue
Block a user