class Kachikachi::GitHub

Attributes

client[RW]

Public Class Methods

new(options) click to toggle source
# File lib/kachikachi/git_hub.rb, line 8
def initialize(options)
  @options = options
end

Public Instance Methods

pull_requests() click to toggle source
# File lib/kachikachi/git_hub.rb, line 12
def pull_requests
  pull_request_numbers = @options['pull-request-numbers']
  return pull_request_numbers.map { |number| PullRequest.new(number, @options) } if pull_request_numbers
  
  options = {
    state: @options[:state]
  }
  options[:creator] = @options[:user] if @options[:user]

  issues = milestone_numbers.map { |number|
    options[:milestone] = number
    client.list_issues(@options[:repo], options).select(&:pull_request)
  }.flatten

  issues.map{ |issue| PullRequest.new(issue.number, @options) }.select{ |pr| pr.base.ref == @options['base-branch'] }
end

Private Instance Methods

milestone_numbers() click to toggle source
# File lib/kachikachi/git_hub.rb, line 30
def milestone_numbers
  client.list_milestones(@options[:repo], state: :all).select{ |milestone|
    @options[:milestones].include?(milestone.title)
  }.map(&:number)
end