class HubLink::Api::PullRequest

Constants

EXPORT_COLUMNS

Public Class Methods

list(repo:, page:, **options) click to toggle source
# File lib/hub_link/api/pull_request.rb, line 27
def self.list(repo:, page:, **options)
  Octokit.list_issues(repo, options.merge(page: page, sort: "updated", direction: "asc", state: "all")).map do |item|
    item.repo = repo
    new(item)
  end
end

Public Instance Methods

additions() click to toggle source
# File lib/hub_link/api/pull_request.rb, line 50
def additions
  extended_data.additions
end
body_size() click to toggle source
# File lib/hub_link/api/pull_request.rb, line 54
def body_size
  body.to_s.size
end
comments_count() click to toggle source
# File lib/hub_link/api/pull_request.rb, line 62
def comments_count
  extended_data.comments
end
labels() click to toggle source
Calls superclass method
# File lib/hub_link/api/pull_request.rb, line 70
def labels
  super.map(&:name).join(", ")
end
merged_at() click to toggle source
# File lib/hub_link/api/pull_request.rb, line 58
def merged_at
  extended_data.merged_at
end
pull_request?() click to toggle source
# File lib/hub_link/api/pull_request.rb, line 34
def pull_request?
  respond_to?(:pull_request)
end
review_comments_count() click to toggle source
# File lib/hub_link/api/pull_request.rb, line 66
def review_comments_count
  extended_data.review_comments
end
review_requests() click to toggle source
# File lib/hub_link/api/pull_request.rb, line 46
def review_requests
  @_review_requests ||= fetch_review_requests
end
reviews() click to toggle source
# File lib/hub_link/api/pull_request.rb, line 42
def reviews
  @_reviews ||= fetch_reviews
end
submitter() click to toggle source
# File lib/hub_link/api/pull_request.rb, line 38
def submitter
  user.login
end
to_h() click to toggle source
# File lib/hub_link/api/pull_request.rb, line 74
def to_h
  Slicer.new(self, columns: EXPORT_COLUMNS).to_h
end

Private Instance Methods

extended_data() click to toggle source
# File lib/hub_link/api/pull_request.rb, line 110
def extended_data
  @_extended_data ||= Octokit.get(pull_request.url)
end
fetch_review_requests() click to toggle source
# File lib/hub_link/api/pull_request.rb, line 84
def fetch_review_requests
  requests = Octokit.pull_request_review_requests(repo, number)

  requests.users.compact.map do |reviewer|
    ReviewRequest.new(created_at: created_at, reviewer: reviewer.login, requester: submitter, pull_request_id: id)
  end
end
fetch_reviews() click to toggle source
# File lib/hub_link/api/pull_request.rb, line 92
def fetch_reviews
  Octokit.pull_request_reviews(repo, number).map do |data|
    data.repo = repo
    data.pull_request_id = id
    data.number = number
    data.submitter = submitter
    Review.new(data)
  end
end
first_approval() click to toggle source
# File lib/hub_link/api/pull_request.rb, line 102
def first_approval
  reviews.find(&:approval?)
end
first_review() click to toggle source
# File lib/hub_link/api/pull_request.rb, line 106
def first_review
  reviews.find(&:submitted?)
end
merged?() click to toggle source
# File lib/hub_link/api/pull_request.rb, line 80
def merged?
  merged_at.present?
end