Merge pull request #1134 from Codium-ai/tr/err_protections

Tr/err protections
This commit is contained in:
Tal
2024-08-14 08:17:19 +03:00
committed by GitHub
7 changed files with 18 additions and 8 deletions

View File

@ -561,8 +561,13 @@ def load_yaml(response_text: str, keys_fix_yaml: List[str] = [], first_key="", l
try:
data = yaml.safe_load(response_text)
except Exception as e:
get_logger().error(f"Failed to parse AI prediction: {e}")
get_logger().warning(f"Initial failure to parse AI prediction: {e}")
data = try_fix_yaml(response_text, keys_fix_yaml=keys_fix_yaml, first_key=first_key, last_key=last_key)
if not data:
get_logger().error(f"Failed to parse AI prediction after fallbacks", artifact={'response_text': response_text})
else:
get_logger().info(f"Successfully parsed AI prediction after fallbacks",
artifact={'response_text': response_text})
return data

View File

@ -177,7 +177,7 @@ class AzureDevopsProvider(GitProvider):
pull_request_id=self.pr_num,
)
except Exception as e:
get_logger().exception(f"Failed to publish labels, error: {e}")
get_logger().warning(f"Failed to publish labels, error: {e}")
def get_pr_labels(self, update=False):
try:

View File

@ -192,9 +192,12 @@ class BitbucketProvider(GitProvider):
else:
if diffs[i].data.get('lines_added', 0) == 0 and diffs[i].data.get('lines_removed', 0) == 0:
diff_split[i] = ""
elif len(diff_split_lines) <= 3:
diff_split[i] = ""
get_logger().info(f"Disregarding empty diff for file {_gef_filename(diffs[i])}")
else:
get_logger().error(f"Error - failed to remove the bitbucket header from diff {i}")
break
get_logger().error(f"Error - failed to get diff for file {_gef_filename(diffs[i])}")
diff_split[i] = ""
invalid_files_names = []
diff_files = []

View File

@ -736,7 +736,7 @@ class GithubProvider(GitProvider):
"PUT", f"{self.pr.issue_url}/labels", input=post_parameters
)
except Exception as e:
get_logger().exception(f"Failed to publish labels, error: {e}")
get_logger().warning(f"Failed to publish labels, error: {e}")
def get_pr_labels(self, update=False):
try:

View File

@ -508,7 +508,7 @@ class GitLabProvider(GitProvider):
self.mr.labels = list(set(pr_types))
self.mr.save()
except Exception as e:
get_logger().exception(f"Failed to publish labels, error: {e}")
get_logger().warning(f"Failed to publish labels, error: {e}")
def publish_inline_comments(self, comments: list[dict]):
pass

View File

@ -292,7 +292,7 @@ class PRCodeSuggestions:
get_logger().debug(f"PR diff", artifact=self.patches_diff)
self.prediction = await self._get_prediction(model, self.patches_diff)
else:
get_logger().error(f"Error getting PR diff")
get_logger().warning(f"Empty PR diff")
self.prediction = None
data = self.prediction

View File

@ -92,7 +92,7 @@ class PRDescription:
if self.prediction:
self._prepare_data()
else:
get_logger().error(f"Error getting AI prediction {self.pr_id}")
get_logger().warning(f"Empty prediction, PR: {self.pr_id}")
self.git_provider.remove_initial_comment()
return None
@ -508,6 +508,8 @@ extra_file_yaml =
def _prepare_file_labels(self):
file_label_dict = {}
if not self.data or 'pr_files' not in self.data:
return file_label_dict
for file in self.data['pr_files']:
try:
required_fields = ['changes_summary', 'changes_title', 'filename', 'label']