Improve & simplify GitHub's representation classes
Signed-off-by: Rémy Coutable <remy@rymai.me>
This commit is contained in:
parent
f50b95b007
commit
7833d3fb29
4 changed files with 16 additions and 18 deletions
|
@ -211,7 +211,7 @@ module Github
|
|||
# for both features, like manipulating assignees, labels
|
||||
# and milestones, are provided within the Issues API.
|
||||
if representation.pull_request?
|
||||
return unless representation.labels? || representation.has_comments?
|
||||
return unless representation.labels? || representation.comments?
|
||||
|
||||
merge_request = MergeRequest.find_by!(target_project_id: project.id, iid: representation.iid)
|
||||
|
||||
|
@ -248,7 +248,7 @@ module Github
|
|||
end
|
||||
|
||||
def fetch_comments_conditionally(issuable, representation)
|
||||
if representation.has_comments?
|
||||
if representation.comments?
|
||||
comments_url = "/repos/#{repo}/issues/#{issuable.iid}/comments"
|
||||
fetch_comments(issuable, :comment, comments_url)
|
||||
end
|
||||
|
|
|
@ -7,10 +7,14 @@ module Github
|
|||
raw.dig('user', 'login') || 'unknown'
|
||||
end
|
||||
|
||||
def repo
|
||||
return @repo if defined?(@repo)
|
||||
def repo?
|
||||
raw['repo'].present?
|
||||
end
|
||||
|
||||
@repo = Github::Representation::Repo.new(raw['repo']) if raw['repo'].present?
|
||||
def repo
|
||||
return unless repo?
|
||||
|
||||
@repo ||= Github::Representation::Repo.new(raw['repo'])
|
||||
end
|
||||
|
||||
def ref
|
||||
|
@ -25,12 +29,6 @@ module Github
|
|||
Commit.truncate_sha(sha)
|
||||
end
|
||||
|
||||
def exists?
|
||||
return @exists if defined?(@exists)
|
||||
|
||||
@exists = repository.branch_exists?(ref)
|
||||
end
|
||||
|
||||
def valid?
|
||||
sha.present? && ref.present?
|
||||
end
|
||||
|
|
|
@ -5,7 +5,7 @@ module Github
|
|||
raw['state'] == 'closed' ? 'closed' : 'opened'
|
||||
end
|
||||
|
||||
def has_comments?
|
||||
def comments?
|
||||
raw['comments'] > 0
|
||||
end
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
module Github
|
||||
module Representation
|
||||
class PullRequest < Representation::Issuable
|
||||
delegate :user, :repo, :ref, :sha, to: :source_branch, prefix: true
|
||||
delegate :user, :exists?, :repo, :ref, :sha, :short_sha, to: :target_branch, prefix: true
|
||||
delegate :sha, to: :source_branch, prefix: true
|
||||
delegate :sha, to: :target_branch, prefix: true
|
||||
|
||||
def source_project
|
||||
project
|
||||
|
@ -11,7 +11,7 @@ module Github
|
|||
def source_branch_name
|
||||
# Mimic the "user:branch" displayed in the MR widget,
|
||||
# i.e. "Request to merge rymai:add-external-mounts into master"
|
||||
cross_project? ? "#{source_branch_user}:#{source_branch_ref}" : source_branch_ref
|
||||
cross_project? ? "#{source_branch.user}:#{source_branch.ref}" : source_branch.ref
|
||||
end
|
||||
|
||||
def target_project
|
||||
|
@ -19,7 +19,7 @@ module Github
|
|||
end
|
||||
|
||||
def target_branch_name
|
||||
target_branch_ref
|
||||
target_branch.ref
|
||||
end
|
||||
|
||||
def state
|
||||
|
@ -62,9 +62,9 @@ module Github
|
|||
end
|
||||
|
||||
def cross_project?
|
||||
return true if source_branch_repo.nil?
|
||||
return true unless source_branch.repo?
|
||||
|
||||
source_branch_repo.id != target_branch_repo.id
|
||||
source_branch.repo.id != target_branch.repo.id
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue