Skip to content

Commit

Permalink
extra_labels
Browse files Browse the repository at this point in the history
  • Loading branch information
mrT23 committed Nov 15, 2023
1 parent 9478447 commit 2e95988
Showing 1 changed file with 27 additions and 21 deletions.
48 changes: 27 additions & 21 deletions pr_agent/tools/pr_reviewer.py
Original file line number Diff line number Diff line change
Expand Up @@ -252,27 +252,8 @@ def _prepare_pr_review(self) -> str:
else:
markdown_text += actions_help_text

if (get_settings().pr_reviewer.enable_review_labels_security or
get_settings().pr_reviewer.enable_review_labels_effort):
try:
review_labels = []
if get_settings().pr_reviewer.enable_review_labels_effort:
estimated_effort = data['PR Analysis']['Estimated effort to review [1-5]']
estimated_effort_number = int(estimated_effort.split(',')[0])
if 1 <= estimated_effort_number <= 5:
review_labels.append(f'Review effort [1-5]: {estimated_effort_number}')
if get_settings().pr_reviewer.enable_review_labels_security:
security_concerns = data['PR Analysis']['Security concerns']
security_concerns_bool = 'yes' in security_concerns.lower() or 'true' in security_concerns.lower()
if security_concerns_bool:
review_labels.append('Possible security concern')

if review_labels:
current_labels = self.git_provider.get_labels()
current_labels_filtered = [label for label in current_labels if not label.startswith('Review effort [1-5]:') and not label.startswith('Possible security concern')]
self.git_provider.publish_labels(review_labels + current_labels_filtered)
except:
pass
# Add custom labels from the review prediction (effort, security)
self.set_review_labels(data)

# Log markdown response if verbosity level is high
if get_settings().config.verbosity_level >= 2:
Expand Down Expand Up @@ -394,3 +375,28 @@ def _can_run_incremental_review(self) -> bool:
)
return False
return True

def set_review_labels(self, data):
if (get_settings().pr_reviewer.enable_review_labels_security or
get_settings().pr_reviewer.enable_review_labels_effort):
try:
review_labels = []
if get_settings().pr_reviewer.enable_review_labels_effort:
estimated_effort = data['PR Analysis']['Estimated effort to review [1-5]']
estimated_effort_number = int(estimated_effort.split(',')[0])
if 1 <= estimated_effort_number <= 5:
review_labels.append(f'Review effort [1-5]: {estimated_effort_number}')
if get_settings().pr_reviewer.enable_review_labels_security:
security_concerns = data['PR Analysis']['Security concerns']
security_concerns_bool = 'yes' in security_concerns.lower() or 'true' in security_concerns.lower()
if security_concerns_bool:
review_labels.append('Possible security concern')

if review_labels:
current_labels = self.git_provider.get_labels()
current_labels_filtered = [label for label in current_labels if
not label.lower().startswith('review effort [1-5]:') and not label.lower().startswith(
'possible security concern')]
self.git_provider.publish_labels(review_labels + current_labels_filtered)
except:
pass

0 comments on commit 2e95988

Please sign in to comment.