Class: Vx::ServiceConnector::GitlabV4::Payload

Inherits:
Object
  • Object
show all
Defined in:
lib/vx/service_connector/gitlab_v4/payload.rb

Instance Method Summary collapse

Constructor Details

#initialize(params) ⇒ Payload

Returns a new instance of Payload.



6
7
8
# File 'lib/vx/service_connector/gitlab_v4/payload.rb', line 6

def initialize(params)
  @params = params || {}
end

Instance Method Details

#baseObject



33
34
35
36
37
38
39
40
# File 'lib/vx/service_connector/gitlab_v4/payload.rb', line 33

def base
  if pull_request?
    cid = (pull_request["st_commits"] || []).first
    cid && cid["parent_ids"] && cid["parent_ids"].first
  else
    self["before"]
  end
end

#branchObject



42
43
44
45
46
47
48
# File 'lib/vx/service_connector/gitlab_v4/payload.rb', line 42

def branch
  if pull_request?
    pull_request["source_branch"]
  else
    self["ref"].to_s.split("refs/heads/").last
  end
end

#branch_labelObject



50
51
52
# File 'lib/vx/service_connector/gitlab_v4/payload.rb', line 50

def branch_label
  branch
end

#closed_pull_request?Boolean

Returns:

  • (Boolean)


70
71
72
# File 'lib/vx/service_connector/gitlab_v4/payload.rb', line 70

def closed_pull_request?
  false
end

#foreign_pull_request?Boolean

Returns:

  • (Boolean)


74
75
76
# File 'lib/vx/service_connector/gitlab_v4/payload.rb', line 74

def foreign_pull_request?
  pull_request_base_repo_id != pull_request_head_repo_id
end

#headObject



24
25
26
27
28
29
30
31
# File 'lib/vx/service_connector/gitlab_v4/payload.rb', line 24

def head
  if pull_request?
    cid = (pull_request["st_commits"] || []).first
    cid && cid["id"]
  else
    self["after"]
  end
end

#ignore?Boolean

Returns:

  • (Boolean)


90
91
92
93
# File 'lib/vx/service_connector/gitlab_v4/payload.rb', line 90

def ignore?
  head == '0000000000000000000000000000000000000000' ||
    ignore_pull_request?
end

#ignore_pull_request?Boolean

Returns:

  • (Boolean)


84
85
86
87
88
# File 'lib/vx/service_connector/gitlab_v4/payload.rb', line 84

def ignore_pull_request?
  if pull_request?
    pull_request_status != 'unchecked'
  end
end

#pull_request?Boolean

Returns:

  • (Boolean)


10
11
12
# File 'lib/vx/service_connector/gitlab_v4/payload.rb', line 10

def pull_request?
  self["object_kind"] == 'merge_request'
end

#pull_request_base_repo_idObject



64
65
66
67
68
# File 'lib/vx/service_connector/gitlab_v4/payload.rb', line 64

def pull_request_base_repo_id
  if pull_request?
    pull_request["source_project_id"]
  end
end

#pull_request_head_repo_idObject



58
59
60
61
62
# File 'lib/vx/service_connector/gitlab_v4/payload.rb', line 58

def pull_request_head_repo_id
  if pull_request?
    pull_request["target_project_id"]
  end
end

#pull_request_numberObject



18
19
20
21
22
# File 'lib/vx/service_connector/gitlab_v4/payload.rb', line 18

def pull_request_number
  if pull_request?
    pull_request["id"]
  end
end

#pull_request_statusObject



78
79
80
81
82
# File 'lib/vx/service_connector/gitlab_v4/payload.rb', line 78

def pull_request_status
  if pull_request?
    pull_request["merge_status"]
  end
end

#tag?Boolean

Returns:

  • (Boolean)


14
15
16
# File 'lib/vx/service_connector/gitlab_v4/payload.rb', line 14

def tag?
  false
end

#to_modelObject



95
96
97
98
99
100
101
102
103
104
105
106
# File 'lib/vx/service_connector/gitlab_v4/payload.rb', line 95

def to_model
  ServiceConnector::Model::Payload.new(
    !!pull_request?,
    pull_request_number,
    head,
    base,
    branch,
    branch_label,
    url,
    !!ignore?
  )
end

#urlObject



54
55
56
# File 'lib/vx/service_connector/gitlab_v4/payload.rb', line 54

def url
  self["commits"] && self["commits"].first && self["commits"].first["url"]
end