Class: LabClient::MergeRequests

Inherits:
Common
  • Object
show all
Defined in:
lib/labclient/merge_requests/list.rb,
lib/labclient/merge_requests/show.rb,
lib/labclient/merge_requests/todo.rb,
lib/labclient/merge_requests/notes.rb,
lib/labclient/merge_requests/accept.rb,
lib/labclient/merge_requests/create.rb,
lib/labclient/merge_requests/delete.rb,
lib/labclient/merge_requests/rebase.rb,
lib/labclient/merge_requests/update.rb,
lib/labclient/merge_requests/changes.rb,
lib/labclient/merge_requests/commits.rb,
lib/labclient/merge_requests/merge_ref.rb,
lib/labclient/merge_requests/pipelines.rb,
lib/labclient/merge_requests/subscribe.rb,
lib/labclient/merge_requests/time_stats.rb,
lib/labclient/merge_requests/unsubscribe.rb,
lib/labclient/merge_requests/participants.rb,
lib/labclient/merge_requests/closes_issues.rb,
lib/labclient/merge_requests/diff_versions.rb,
lib/labclient/merge_requests/cancel_auto_merge.rb

Overview

Specifics

Instance Attribute Summary

Attributes inherited from Common

#client

Instance Method Summary collapse

Methods inherited from Common

#api_methods, #api_methods_help, #format_id, #format_query_id, #format_query_ids, #format_time?, #group_name, #help, #initialize, #inspect, #klass, #protected_query_access_level, #query_access_level, #query_format_time

Methods included from Docs

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

Methods included from AccessLevel

#human_access_level, #human_protected_access_level, #machine_access_level, #machine_protected_access_level

Constructor Details

This class inherits a constructor from LabClient::Common

Instance Method Details

#accept(project_id, merge_request_id) ⇒ Object

Accept



32
33
34
35
36
37
# File 'lib/labclient/merge_requests/accept.rb', line 32

def accept(project_id, merge_request_id)
  project_id = format_id(project_id)
  merge_request_id = format_id(merge_request_id)

  client.request(:put, "projects/#{project_id}/merge_requests/#{merge_request_id}/merge", MergeRequest)
end

#add_spent_time(project_id, merge_request_id, duration) ⇒ Object



60
61
62
63
64
65
66
# File 'lib/labclient/merge_requests/time_stats.rb', line 60

def add_spent_time(project_id, merge_request_id, duration)
  project_id = format_id(project_id)
  merge_request_id = format_id(merge_request_id)

  duration = ChronicDuration.output(ChronicDuration.parse(duration.to_s), format: :short)
  client.request(:post, "projects/#{project_id}/merge_requests/#{merge_request_id}/add_spent_time", nil, duration: duration)
end

#cancel_auto_merge(project_id, merge_request_id) ⇒ Object



31
32
33
34
35
36
# File 'lib/labclient/merge_requests/cancel_auto_merge.rb', line 31

def cancel_auto_merge(project_id, merge_request_id)
  project_id = format_id(project_id)
  merge_request_id = format_id(merge_request_id)

  client.request(:post, "projects/#{project_id}/merge_requests/#{merge_request_id}/cancel_merge_when_pipeline_succeeds", MergeRequest)
end

#changes(project_id, merge_request_id) ⇒ Object

Show Specific



27
28
29
30
31
32
# File 'lib/labclient/merge_requests/changes.rb', line 27

def changes(project_id, merge_request_id)
  project_id = format_id(project_id)
  merge_request_id = format_id(merge_request_id)

  client.request(:get, "projects/#{project_id}/merge_requests/#{merge_request_id}/changes", Changes)
end

#closes_issues(project_id, merge_request_id) ⇒ Object



28
29
30
31
32
33
# File 'lib/labclient/merge_requests/closes_issues.rb', line 28

def closes_issues(project_id, merge_request_id)
  project_id = format_id(project_id)
  merge_request_id = format_id(merge_request_id)

  client.request(:get, "projects/#{project_id}/merge_requests/#{merge_request_id}/closes_issues", Issue)
end

#commits(project_id, merge_request_id) ⇒ Object

Show Specific



15
16
17
18
19
20
# File 'lib/labclient/merge_requests/commits.rb', line 15

def commits(project_id, merge_request_id)
  project_id = format_id(project_id)
  merge_request_id = format_id(merge_request_id)

  client.request(:get, "projects/#{project_id}/merge_requests/#{merge_request_id}/commits", Commit)
end

#create(project_id, query) ⇒ Object

Create



45
46
47
48
49
# File 'lib/labclient/merge_requests/create.rb', line 45

def create(project_id, query)
  project_id = format_id(project_id)

  client.request(:post, "projects/#{project_id}/merge_requests", MergeRequest, query)
end

#create_pipeline(project_id, merge_request_id) ⇒ Object

Create New Pipeline



56
57
58
59
60
61
# File 'lib/labclient/merge_requests/pipelines.rb', line 56

def create_pipeline(project_id, merge_request_id)
  project_id = format_id(project_id)
  merge_request_id = format_id(merge_request_id)

  client.request(:post, "projects/#{project_id}/merge_requests/#{merge_request_id}/pipelines", Pipeline)
end

#delete(project_id, merge_request_id) ⇒ Object

Delete



24
25
26
27
28
29
# File 'lib/labclient/merge_requests/delete.rb', line 24

def delete(project_id, merge_request_id)
  project_id = format_id(project_id)
  merge_request_id = format_id(merge_request_id)

  client.request(:delete, "projects/#{project_id}/merge_requests/#{merge_request_id}")
end

#diff_versions(project_id, mr_id, diff_id = nil) ⇒ Object

Show Specific



58
59
60
61
62
63
64
65
66
67
68
# File 'lib/labclient/merge_requests/diff_versions.rb', line 58

def diff_versions(project_id, mr_id, diff_id = nil)
  project_id = format_id(project_id)
  mr_id = format_id(mr_id)
  diff_id = format_id(diff_id)

  if diff_id
    client.request(:get, "projects/#{project_id}/merge_requests/#{mr_id}/versions/#{diff_id}", MergeRequestDiff)
  else
    client.request(:get, "projects/#{project_id}/merge_requests/#{mr_id}/versions", MergeRequestDiff)
  end
end

#list(query = {}) ⇒ Object

List



77
78
79
80
81
82
83
# File 'lib/labclient/merge_requests/list.rb', line 77

def list(query = {})
  %i[created_after created_before updated_after updated_before].each do |field|
    query[field] = query[field].to_time.iso8601 if format_time?(query[field])
  end

  client.request(:get, 'merge_requests', MergeRequest, query)
end

#list_group(group_id, query = {}) ⇒ Object

Group



96
97
98
99
100
101
102
103
# File 'lib/labclient/merge_requests/list.rb', line 96

def list_group(group_id, query = {})
  group_id = format_id(group_id)
  %i[created_after created_before updated_after updated_before].each do |field|
    query[field] = query[field].to_time.iso8601 if format_time?(query[field])
  end

  client.request(:get, "groups/#{group_id}/merge_requests", MergeRequest, query)
end

#list_project(project_id, query = {}) ⇒ Object

Project



86
87
88
89
90
91
92
93
# File 'lib/labclient/merge_requests/list.rb', line 86

def list_project(project_id, query = {})
  project_id = format_id(project_id)
  %i[created_after created_before updated_after updated_before].each do |field|
    query[field] = query[field].to_time.iso8601 if format_time?(query[field])
  end

  client.request(:get, "projects/#{project_id}/merge_requests", MergeRequest, query)
end

#merge_ref(project_id, merge_request_id) ⇒ Object



41
42
43
44
45
46
# File 'lib/labclient/merge_requests/merge_ref.rb', line 41

def merge_ref(project_id, merge_request_id)
  project_id = format_id(project_id)
  merge_request_id = format_id(merge_request_id)

  client.request(:get, "projects/#{project_id}/merge_requests/#{merge_request_id}/merge_ref")
end

#participants(project_id, merge_request_id) ⇒ Object

Show Specific



29
30
31
32
33
34
# File 'lib/labclient/merge_requests/participants.rb', line 29

def participants(project_id, merge_request_id)
  project_id = format_id(project_id)
  merge_request_id = format_id(merge_request_id)

  client.request(:get, "projects/#{project_id}/merge_requests/#{merge_request_id}/participants", User)
end

#pipelines(project_id, merge_request_id) ⇒ Object

Show Specific



27
28
29
30
31
32
# File 'lib/labclient/merge_requests/pipelines.rb', line 27

def pipelines(project_id, merge_request_id)
  project_id = format_id(project_id)
  merge_request_id = format_id(merge_request_id)

  client.request(:get, "projects/#{project_id}/merge_requests/#{merge_request_id}/pipelines", Pipeline)
end

#rebase(project_id, merge_request_id, skip_ci = false) ⇒ Object



38
39
40
41
42
43
# File 'lib/labclient/merge_requests/rebase.rb', line 38

def rebase(project_id, merge_request_id, skip_ci = false)
  project_id = format_id(project_id)
  merge_request_id = format_id(merge_request_id)

  client.request(:put, "projects/#{project_id}/merge_requests/#{merge_request_id}/rebase", nil, skip_ci: skip_ci)
end

#reset_spent_time(project_id, merge_request_id) ⇒ Object



150
151
152
153
154
155
# File 'lib/labclient/merge_requests/time_stats.rb', line 150

def reset_spent_time(project_id, merge_request_id)
  project_id = format_id(project_id)
  merge_request_id = format_id(merge_request_id)

  client.request(:post, "projects/#{project_id}/merge_requests/#{merge_request_id}/reset_spent_time")
end

#reset_time_estimate(project_id, merge_request_id) ⇒ Object



126
127
128
129
130
131
# File 'lib/labclient/merge_requests/time_stats.rb', line 126

def reset_time_estimate(project_id, merge_request_id)
  project_id = format_id(project_id)
  merge_request_id = format_id(merge_request_id)

  client.request(:post, "projects/#{project_id}/merge_requests/#{merge_request_id}/reset_time_estimate")
end

#show(project_id, merge_request_id = nil, query = {}) ⇒ Object

Show Specific



25
26
27
28
29
30
# File 'lib/labclient/merge_requests/show.rb', line 25

def show(project_id, merge_request_id = nil, query = {})
  project_id = format_id(project_id)
  merge_request_id = format_id(merge_request_id)

  client.request(:get, "projects/#{project_id}/merge_requests/#{merge_request_id}", MergeRequest, query)
end

#subscribe(project_id, merge_request_id) ⇒ Object



24
25
26
27
28
29
# File 'lib/labclient/merge_requests/subscribe.rb', line 24

def subscribe(project_id, merge_request_id)
  project_id = format_id(project_id)
  merge_request_id = format_id(merge_request_id)

  client.request(:post, "projects/#{project_id}/merge_requests/#{merge_request_id}/subscribe", MergeRequest)
end

#time_estimate(project_id, merge_request_id, duration) ⇒ Object



99
100
101
102
103
104
105
# File 'lib/labclient/merge_requests/time_stats.rb', line 99

def time_estimate(project_id, merge_request_id, duration)
  project_id = format_id(project_id)
  merge_request_id = format_id(merge_request_id)

  duration = ChronicDuration.output(ChronicDuration.parse(duration.to_s), format: :short)
  client.request(:post, "projects/#{project_id}/merge_requests/#{merge_request_id}/time_estimate", nil, duration: duration)
end

#time_stats(project_id, merge_request_id) ⇒ Object



22
23
24
25
26
27
# File 'lib/labclient/merge_requests/time_stats.rb', line 22

def time_stats(project_id, merge_request_id)
  project_id = format_id(project_id)
  merge_request_id = format_id(merge_request_id)

  client.request(:get, "projects/#{project_id}/merge_requests/#{merge_request_id}/time_stats")
end

#todo(project_id, merge_request_id) ⇒ Object



24
25
26
27
28
29
# File 'lib/labclient/merge_requests/todo.rb', line 24

def todo(project_id, merge_request_id)
  project_id = format_id(project_id)
  merge_request_id = format_id(merge_request_id)

  client.request(:post, "projects/#{project_id}/merge_requests/#{merge_request_id}/todo", Todo)
end

#unsubscribe(project_id, merge_request_id) ⇒ Object



24
25
26
27
28
29
# File 'lib/labclient/merge_requests/unsubscribe.rb', line 24

def unsubscribe(project_id, merge_request_id)
  project_id = format_id(project_id)
  merge_request_id = format_id(merge_request_id)

  client.request(:post, "projects/#{project_id}/merge_requests/#{merge_request_id}/unsubscribe", MergeRequest)
end

#update(project_id, merge_request_id, query) ⇒ Object

Update



28
29
30
31
32
33
# File 'lib/labclient/merge_requests/update.rb', line 28

def update(project_id, merge_request_id, query)
  project_id = format_id(project_id)
  merge_request_id = format_id(merge_request_id)

  client.request(:put, "projects/#{project_id}/merge_requests/#{merge_request_id}", MergeRequest, query)
end