class Prpr::Action::ConflictLabel::CheckAll

Public Instance Methods

call() click to toggle source
# File lib/prpr/action/conflict_label/check_all.rb, line 5
def call
  pull_requests.each do |pull_request|
    case mergeable? pull_request
    when true
      remove_label pull_request
    when false
      add_label pull_request
    else
      # ignore nil
    end
  end
end

Private Instance Methods

add_label(pull_request) click to toggle source
# File lib/prpr/action/conflict_label/check_all.rb, line 28
def add_label(pull_request)
  return if already_labeled?(pull_request)
  github.add_labels_to_an_issue(repository, pull_request.number, [label])
end
already_labeled?(pull_request) click to toggle source
# File lib/prpr/action/conflict_label/check_all.rb, line 38
def already_labeled?(pull_request)
  labels(pull_request).map(&:name).any? { |name| name == label }
end
github() click to toggle source
# File lib/prpr/action/conflict_label/check_all.rb, line 54
def github
  Repository::Github.default
end
label() click to toggle source
# File lib/prpr/action/conflict_label/check_all.rb, line 46
def label
  @label ||= Config::Env.default[:conflict_label] || 'conflict'
end
labels(pull_request) click to toggle source
# File lib/prpr/action/conflict_label/check_all.rb, line 42
def labels(pull_request)
  github.labels_for_issue repository, pull_request.number
end
mergeable?(pull_request) click to toggle source
# File lib/prpr/action/conflict_label/check_all.rb, line 24
def mergeable?(pull_request)
  github.pull_request(repository, pull_request.number).mergeable
end
pull_requests() click to toggle source
# File lib/prpr/action/conflict_label/check_all.rb, line 20
def pull_requests
  @pull_requests ||= github.pull_requests repository, state: 'open'
end
remove_label(pull_request) click to toggle source
# File lib/prpr/action/conflict_label/check_all.rb, line 33
def remove_label(pull_request)
  return unless already_labeled?(pull_request)
  github.remove_label(repository, pull_request.number, label)
end
repository() click to toggle source
# File lib/prpr/action/conflict_label/check_all.rb, line 50
def repository
  event.repository.full_name
end