Skip to content
Snippets Groups Projects

Reviewer roulette via Danger

Merged Nick Thomas requested to merge 56087-danger-roulette into master
All threads resolved!
Compare and Show latest version
4 files
+ 212
35
Compare changes
  • Side-by-side
  • Inline
Files
4
@@ -25,16 +25,10 @@ UNKNOWN_FILES_MESSAGE = <<MARKDOWN
These files couldn't be categorised, so Danger was unable to suggest a reviewer.
Please consider creating a merge request to
[add support](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/danger/plugins/helper.rb)
[add support](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/gitlab/danger/helper.rb)
for them.
MARKDOWN
def markdown_name(teammate)
return nil unless teammate
"[#{teammate.name}](https://gitlab.com/#{teammate.gitlab}) (`@#{teammate.gitlab}`)"
end
def spin(team, project, category)
reviewers = team.select { |member| member.reviewer?(project, category) }
maintainers = team.select { |member| member.maintainer?(project, category) }
@@ -45,7 +39,7 @@ def spin(team, project, category)
reviewer = reviewers[rand(reviewers.size)]
maintainer = maintainers[rand(maintainers.size)]
"| #{helper.label_for_category(category)} | #{markdown_name(reviewer)} | #{markdown_name(maintainer)} |"
"| #{helper.label_for_category(category)} | #{reviewer&.markdown_name} | #{maintainer&.markdown_name} |"
end
def build_list(items)
@@ -63,7 +57,7 @@ categories = changes.keys - [:unknown]
unless changes.empty?
# Exclude the MR author from the team for selection purposes
team = helper.project_team.delete_if { |teammate| teammate.gitlab == gitlab.mr_author }
team = helper.project_team.delete_if { |teammate| teammate.username == gitlab.mr_author }
project = helper.project_name
unknown = changes.fetch(:unknown, [])
Loading