class Ruboty::Github::Actions::CloseIssue

Public Instance Methods

call() click to toggle source
# File lib/ruboty/github/actions/close_issue.rb, line 7
def call
  if !has_access_token?
    require_access_token
  elsif has_closed_issue_number?
    reply_already_closed
  else
    close
  end
rescue Octokit::Unauthorized
  message.reply('Failed in authentication (401)')
rescue Octokit::NotFound
  message.reply('Could not find that issue')
rescue StandardError => e
  message.reply("Failed by #{e.class}")
  raise e
end

Private Instance Methods

close() click to toggle source
# File lib/ruboty/github/actions/close_issue.rb, line 26
def close
  request
  message.reply("Closed #{issue.html_url}")
end
has_closed_issue_number?() click to toggle source
# File lib/ruboty/github/actions/close_issue.rb, line 35
def has_closed_issue_number?
  issue.state == 'closed'
end
issue() click to toggle source
# File lib/ruboty/github/actions/close_issue.rb, line 43
def issue
  @issue ||= client.issue(repository, issue_number)
end
issue_number() click to toggle source
# File lib/ruboty/github/actions/close_issue.rb, line 47
def issue_number
  message[:number]
end
reply_already_closed() click to toggle source
# File lib/ruboty/github/actions/close_issue.rb, line 39
def reply_already_closed
  message.reply("Already closed #{issue.html_url}")
end
request() click to toggle source
# File lib/ruboty/github/actions/close_issue.rb, line 31
def request
  client.close_issue(repository, issue_number)
end