class Lita::Handlers::ReviewerLotto
Public Class Methods
default_config(handler_config)
click to toggle source
# File lib/lita/handlers/reviewer_lotto.rb, line 6 def self.default_config(handler_config) handler_config.gh_token = nil handler_config.gh_organization = nil handler_config.gh_reviewer_team = nil end
Public Instance Methods
reviewer_for(response)
click to toggle source
# File lib/lita/handlers/reviewer_lotto.rb, line 14 def reviewer_for(response) repository_name = response.matches[0][0] pull_request_number = response.matches[0][1] repository = "#{config.gh_organization}/#{repository_name}" client = Octokit::Client.new(access_token: config.gh_token) reviewers = client.team_members(config.gh_reviewer_team).map(&:login) pull_request = client.pull_request(repository, pull_request_number) reviewer = (reviewers - [pull_request.user.login]).sample client.update_issue(repository, pull_request_number, pull_request.title, pull_request.body, assignee: reviewer) client.add_comment(repository, pull_request_number, "@#{reviewer} please review this :bow:") response.reply "#{reviewer} has been assigned for #{pull_request.html_url} as a reviewer" rescue Octokit::NotFound => e response.reply 'PullRequest not found' end
Private Instance Methods
config()
click to toggle source
# File lib/lita/handlers/reviewer_lotto.rb, line 32 def config Lita.config.handlers.reviewer_lotto end