Sha256: aa2dca7092c28b1dadd3457ca0354c85ff43b38f9e8e680effd2cfb205b2ade3

Contents?: true

Size: 1.27 KB

Versions: 1

Compression:

Stored size: 1.27 KB

Contents

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

      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)

        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)

        list = "\n- [ ] Change log\n- [ ] Demo page\n- [ ] Product owner signoff\n"
        list << "- [ ] Merge into master\n- [ ] Deploy to production\n"

        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

1 entries across 1 versions & 1 rubygems

Version Path
lita-github_pr_list-0.0.11 lib/lita/github_pr_list/check_list.rb