Sha256: c2bd9d2824b81873604d2f755a02b9b689021ec3aa70ffa15b1ccb05de5f603c

Contents?: true

Size: 1.3 KB

Versions: 10

Compression:

Stored size: 1.3 KB

Contents

module Lita
  module GithubPrList
    class PullRequestOpenMessageHook
      attr_accessor :response, :request, :redis, :payload, :pull_request_owner, :title, :repo_name, :pull_request_status, :pull_request_html_url, :statuses

      def initialize(params = {})
        self.statuses = %w(opened)
        self.response = params.fetch(:response, nil)
        self.request = params.fetch(:request, nil)
        self.redis = params.fetch(:redis, nil)

        raise "invalid params in #{self.class.name}" if response.nil? || request.nil? || redis.nil?

        # https://developer.github.com/v3/activity/events/types/#pullrequestevent
        self.payload = JSON.parse(request.body.read)
        self.pull_request_status = payload["action"]
        self.pull_request_owner = redis.get("alias:#{payload["pull_request"]["user"]["login"]}") || payload["pull_request"]["user"]["login"]
        self.title = payload["pull_request"]["title"]
        self.repo_name = payload["pull_request"]["head"]["repo"]["full_name"]
        self.pull_request_html_url = payload["pull_request"]["html_url"]
      end

      def message
        if statuses.include? pull_request_status
          "@#{pull_request_owner} #{pull_request_status} pull request: '#{title}' in '#{repo_name}'. #{pull_request_html_url}'"
        end
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
lita-github_pr_list-0.2.1 lib/lita/github_pr_list/pull_request_open_message_hook.rb
lita-github_pr_list-0.2.0 lib/lita/github_pr_list/pull_request_open_message_hook.rb
lita-github_pr_list-0.1.3 lib/lita/github_pr_list/pull_request_open_message_hook.rb
lita-github_pr_list-0.1.2 lib/lita/github_pr_list/pull_request_open_message_hook.rb
lita-github_pr_list-0.1.1 lib/lita/github_pr_list/pull_request_open_message_hook.rb
lita-github_pr_list-0.1.0 lib/lita/github_pr_list/pull_request_open_message_hook.rb
lita-github_pr_list-0.0.21 lib/lita/github_pr_list/pull_request_open_message_hook.rb
lita-github_pr_list-0.0.20 lib/lita/github_pr_list/pull_request_open_message_hook.rb
lita-github_pr_list-0.0.19 lib/lita/github_pr_list/pull_request_open_message_hook.rb
lita-github_pr_list-0.0.16 lib/lita/github_pr_list/pull_request_open_message_hook.rb