Class: LabClient::MergeRequest

Inherits:
Klass show all
Includes:
ClassHelpers
Defined in:
lib/labclient/merge_requests/merge_request.rb

Overview

Inspect Helper

Instance Attribute Summary

Attributes inherited from Klass

#client, #response

Attributes inherited from LabStruct

#response

Instance Method Summary collapse

Methods included from ClassHelpers

#has?, #keys, #raw

Methods inherited from Klass

#api_methods, #collect_project_id, #collect_release_id, #collect_repository_id, date_time_attrs, #format_time?, #group_name, #help, #initialize, #klass, #quiet?, #success?, #to_json, #update_self, user_attrs, #valid_group_project_levels, #verbose

Methods included from Docs

#demo, #desc, #doc, docs, #example, #group_name, #help, json, #markdown, #navigation, #option, #result, #subtitle, #title

Methods included from CurlHelper

#curl

Methods included from Logger

#logger, logger, logger_setup

Methods inherited from LabStruct

#as_json, #client, #keys, #slice, #success?

Constructor Details

This class inherits a constructor from LabClient::Klass

Instance Method Details

#accept(query = {}) ⇒ Object



53
54
55
# File 'lib/labclient/merge_requests/merge_request.rb', line 53

def accept(query = {})
  client.merge_requests.accept(project_id, iid, query)
end

#add_spent_time(duration) ⇒ Object



69
70
71
# File 'lib/labclient/merge_requests/merge_request.rb', line 69

def add_spent_time(duration)
  client.merge_requests.add_spent_time(project_id, iid, duration)
end

#approvalsObject

Approvals



131
132
133
# File 'lib/labclient/merge_requests/merge_request.rb', line 131

def approvals
  client.approvals.merge_request.show(project_id, iid)
end

#approvals_rule_create(query = {}) ⇒ Object



143
144
145
# File 'lib/labclient/merge_requests/merge_request.rb', line 143

def approvals_rule_create(query = {})
  client.approvals.merge_request.create_rule(project_id, iid, query)
end

#approvals_rule_delete(approval_rule_id) ⇒ Object



151
152
153
# File 'lib/labclient/merge_requests/merge_request.rb', line 151

def approvals_rule_delete(approval_rule_id)
  client.approvals.merge_request.delete_rule(project_id, iid, approval_rule_id)
end

#approvals_rule_update(approval_rule_id, query = {}) ⇒ Object



147
148
149
# File 'lib/labclient/merge_requests/merge_request.rb', line 147

def approvals_rule_update(approval_rule_id, query = {})
  client.approvals.merge_request.update_rule(project_id, iid, approval_rule_id, query)
end

#approvals_rulesObject



139
140
141
# File 'lib/labclient/merge_requests/merge_request.rb', line 139

def approvals_rules
  client.approvals.merge_request.rules(project_id, iid)
end

#approvals_update(approvals_required) ⇒ Object



135
136
137
# File 'lib/labclient/merge_requests/merge_request.rb', line 135

def approvals_update(approvals_required)
  client.approvals.merge_request.update(project_id, iid, approvals_required)
end

#approve(query = {}) ⇒ Object



155
156
157
# File 'lib/labclient/merge_requests/merge_request.rb', line 155

def approve(query = {})
  client.approvals.merge_request.approve(project_id, iid, query)
end

#assigneesObject



21
22
23
# File 'lib/labclient/merge_requests/merge_request.rb', line 21

def assignees
  @table[:assignees].map { |x| User.new(x, response, client) } if has? :assignees
end

#cancel_auto_mergeObject



61
62
63
# File 'lib/labclient/merge_requests/merge_request.rb', line 61

def cancel_auto_merge
  client.merge_requests.cancel_auto_merge(project_id, iid)
end

#changesObject



29
30
31
# File 'lib/labclient/merge_requests/merge_request.rb', line 29

def changes
  client.merge_requests.changes(project_id, iid)
end

#closes_issuesObject



85
86
87
# File 'lib/labclient/merge_requests/merge_request.rb', line 85

def closes_issues
  client.merge_requests.closes_issues(project_id, iid)
end

#commitsObject



33
34
35
# File 'lib/labclient/merge_requests/merge_request.rb', line 33

def commits
  client.merge_requests.commits(project_id, iid)
end

#create_pipelineObject



41
42
43
# File 'lib/labclient/merge_requests/merge_request.rb', line 41

def create_pipeline
  client.merge_requests.create_pipeline(project_id, iid)
end

#deleteObject



49
50
51
# File 'lib/labclient/merge_requests/merge_request.rb', line 49

def delete
  client.merge_requests.delete(project_id, iid)
end

#diff_versionsObject



113
114
115
# File 'lib/labclient/merge_requests/merge_request.rb', line 113

def diff_versions
  client.merge_requests.diff_versions(project_id, iid)
end

#inspectObject

extend Docs



8
9
10
# File 'lib/labclient/merge_requests/merge_request.rb', line 8

def inspect
  "#<MergeRequest id: #{id}, title: #{title}, state: #{state}>"
end

#merge_refObject



57
58
59
# File 'lib/labclient/merge_requests/merge_request.rb', line 57

def merge_ref
  client.merge_requests.merge_ref(project_id, iid)
end

#note_create(query) ⇒ Object



101
102
103
# File 'lib/labclient/merge_requests/merge_request.rb', line 101

def note_create(query)
  client.notes.merge_requests.create(project_id, iid, query)
end

#notesObject



97
98
99
# File 'lib/labclient/merge_requests/merge_request.rb', line 97

def notes
  client.notes.merge_requests.list(project_id, iid)
end

#participantsObject



25
26
27
# File 'lib/labclient/merge_requests/merge_request.rb', line 25

def participants
  client.merge_requests.participants(project_id, iid)
end

#pipelinesObject



37
38
39
# File 'lib/labclient/merge_requests/merge_request.rb', line 37

def pipelines
  client.merge_requests.pipelines(project_id, iid)
end

#projectObject

Default to Source Project



118
119
120
# File 'lib/labclient/merge_requests/merge_request.rb', line 118

def project
  client.projects.show(source_project_id)
end

#rebase(skip_ci = false) ⇒ Object



65
66
67
# File 'lib/labclient/merge_requests/merge_request.rb', line 65

def rebase(skip_ci = false)
  client.merge_requests.rebase(project_id, iid, skip_ci)
end

#reloadObject

Reload



173
174
175
# File 'lib/labclient/merge_requests/merge_request.rb', line 173

def reload
  update_self client.merge_requests.show(project_id, iid)
end

#reset_spent_timeObject



81
82
83
# File 'lib/labclient/merge_requests/merge_request.rb', line 81

def reset_spent_time
  client.merge_requests.reset_spent_time(project_id, iid)
end

#reset_time_estimateObject



77
78
79
# File 'lib/labclient/merge_requests/merge_request.rb', line 77

def reset_time_estimate
  client.merge_requests.reset_time_estimate(project_id, iid)
end

#resource_label(resource_event_id) ⇒ Object



168
169
170
# File 'lib/labclient/merge_requests/merge_request.rb', line 168

def resource_label(resource_event_id)
  client.resource_labels.merge_requests.show(project_id, iid, resource_event_id)
end

#resource_labelsObject

Resource Labels



164
165
166
# File 'lib/labclient/merge_requests/merge_request.rb', line 164

def resource_labels
  client.resource_labels.merge_requests.list(project_id, iid)
end

#source_projectObject



122
123
124
# File 'lib/labclient/merge_requests/merge_request.rb', line 122

def source_project
  client.projects.show(source_project_id)
end

#subscribeObject



89
90
91
# File 'lib/labclient/merge_requests/merge_request.rb', line 89

def subscribe
  client.merge_requests.subscribe(project_id, iid)
end

#target_projectObject



126
127
128
# File 'lib/labclient/merge_requests/merge_request.rb', line 126

def target_project
  client.projects.show(target_project_id)
end

#time_estimate(duration) ⇒ Object



73
74
75
# File 'lib/labclient/merge_requests/merge_request.rb', line 73

def time_estimate(duration)
  client.merge_requests.time_estimate(project_id, iid, duration)
end

#time_statsObject



109
110
111
# File 'lib/labclient/merge_requests/merge_request.rb', line 109

def time_stats
  client.merge_requests.time_stats(project_id, iid)
end

#todoObject



105
106
107
# File 'lib/labclient/merge_requests/merge_request.rb', line 105

def todo
  client.merge_requests.todo(project_id, iid)
end

#unapproveObject



159
160
161
# File 'lib/labclient/merge_requests/merge_request.rb', line 159

def unapprove
  client.approvals.merge_request.unapprove(project_id, iid)
end

#unsubscribeObject



93
94
95
# File 'lib/labclient/merge_requests/merge_request.rb', line 93

def unsubscribe
  client.merge_requests.unsubscribe(project_id, iid)
end

#update(query) ⇒ Object



45
46
47
# File 'lib/labclient/merge_requests/merge_request.rb', line 45

def update(query)
  update_self client.merge_requests.update(project_id, iid, query)
end

#wait_for_merge_status(total_time = 300, sleep_time = 15) ⇒ Object

Wait for Import / Set a Hard Limit



178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
# File 'lib/labclient/merge_requests/merge_request.rb', line 178

def wait_for_merge_status(total_time = 300, sleep_time = 15)
  # :unchecked
  # :cannot_be_merged_recheck
  # :checking
  # :cannot_be_merged_rechecking
  # :can_be_merged
  # :cannot_be_merged

  # Success
  # [unchecked, can_be_merged]

  # Fail
  # [cannot_be_merged cannot_be_merged_recheck]

  Timeout.timeout(total_time) do
    loop do
      reload
      logger.info "Waiting for Merge Status: #{merge_status}" unless quiet?
      break if %w[can_be_merged unchecked].include? merge_status
      raise "Cannot be merged! #{import_error}" if %w[cannot_be_merged cannot_be_merged_recheck].include? merge_status

      sleep sleep_time
    end
  end
end