Sha256: 175923b790d82709330881dc7d17991982c589ae32540bcc22ccf4039e42511d

Contents?: true

Size: 1.23 KB

Versions: 7

Compression:

Stored size: 1.23 KB

Contents

module Lita
  module GithubPrList
    class CheckList
      attr_accessor :request, :response, :payload, :redis, :repo_name, :comment_body,
                    :title, :id, :github_token, :github_client, :list

      def initialize(params = {})
        self.github_token = params.fetch(:github_token, nil)
        self.response = params.fetch(:response, nil)
        self.request = params.fetch(:request, nil)
        self.redis = params.fetch(:redis, nil)
        self.list = params.fetch(:list, "\n- [ ] Change log\n- [ ] Demo page\n- [ ] Product owner signoff\n")

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

        self.github_client = Octokit::Client.new(access_token: github_token, auto_paginate: true)

        self.payload = JSON.parse(request.body.read)
        self.repo_name = payload["pull_request"]["head"]["repo"]["full_name"]
        self.comment_body = "#{payload["pull_request"]["body"]} #{list}"
        self.title = payload["pull_request"]["title"]
        self.id = payload["number"]

        options = { title: title, body: comment_body, state: 'open' }
        github_client.update_pull_request(repo_name, id, options) if payload["action"] == "opened"
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
lita-github_pr_list-0.0.20 lib/lita/github_pr_list/check_list.rb
lita-github_pr_list-0.0.19 lib/lita/github_pr_list/check_list.rb
lita-github_pr_list-0.0.16 lib/lita/github_pr_list/check_list.rb
lita-github_pr_list-0.0.15 lib/lita/github_pr_list/check_list.rb
lita-github_pr_list-0.0.14 lib/lita/github_pr_list/check_list.rb
lita-github_pr_list-0.0.13 lib/lita/github_pr_list/check_list.rb
lita-github_pr_list-0.0.12 lib/lita/github_pr_list/check_list.rb