class Ellen::Github::Actions::CloseIssue

Public Instance Methods

call() click to toggle source
# File lib/ellen/github/actions/close_issue.rb, line 5
def call
  case
  when !has_access_token?
    require_access_token
  when 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 => exception
  raise exception
  message.reply("Failed by #{exception.class}")
end

Private Instance Methods

close() click to toggle source
# File lib/ellen/github/actions/close_issue.rb, line 25
def close
  request
  message.reply("Closed #{issue.html_url}")
end
has_closed_issue_number?() click to toggle source
# File lib/ellen/github/actions/close_issue.rb, line 34
def has_closed_issue_number?
  issue.state == "closed"
end
issue() click to toggle source
# File lib/ellen/github/actions/close_issue.rb, line 42
def issue
  @issue ||= client.issue(repository, issue_number)
end
issue_number() click to toggle source
# File lib/ellen/github/actions/close_issue.rb, line 46
def issue_number
  message[:number]
end
reply_already_closed() click to toggle source
# File lib/ellen/github/actions/close_issue.rb, line 38
def reply_already_closed
  message.reply("Already closed #{issue.html_url}")
end
request() click to toggle source
# File lib/ellen/github/actions/close_issue.rb, line 30
def request
  client.close_issue(repository, issue_number)
end